Bug #60779 [Com]: Incorrect return value for getprotobyname

From: Date: Tue, 17 Jan 2012 16:25:28 +0000
Subject: Bug #60779 [Com]: Incorrect return value for getprotobyname
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-166552@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60779&edit=1 ID: 60779 Comment by: phpmpan at mpan dot pl Reported by: wojtos at gmail dot com Summary: Incorrect return value for getprotobyname Status: Open Type: Bug Package: *Network Functions Operating System: Debian Squeeze PHP Version: Irrelevant Block user comment: N Private report: N New Comment: Or you can't... Are you sure that you're receiving 0, not FALSE? If yes, than I'm NOT confirming this behaviour with 5.3.9, 5.3-dev, 5.4-dev or trunk-dev (on Arch64). In all four versions getprotobyname returns FALSE. Also returning 0 seems very strange. PHP just forwards the call to getprotobyname from netdb. In case of an error or if a protocol is not found, this function should return NULL. PHP checks if the call has returned NULL and, if it did, returns FALSE. Therefore if you're receiving 0, this would indicate a bug in the host environment, not in PHP itself. -------- BEGIN CODE -------- // ext/standard/basic_functions.c from SVN // ... ent = getprotobyname(name); if (ent == NULL) { RETURN_FALSE; } // ... --------- END CODE --------- Previous Comments: ------------------------------------------------------------------------ [2012-01-17 15:46:49] phpmpan at mpan dot pl This is not a bug in getprotobyname. It's a bug in documentation for the function. getprotobyname returns FALSE, not 0 in case of an error. I will fill a report for that in a moment. You can close this one. ------------------------------------------------------------------------ [2012-01-17 14:19:22] wojtos at gmail dot com Description: ------------ --- From manual page: http://www.php.net/function.getprotobyname#refsect1-function.getprotobyname-returnvalues --- Return for unrecognized protocol is 0 instead of -1. PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 13:13:26) Test script: --------------- <?php $protocol = 'BLA'; $get_prot = getprotobyname($protocol); if ($get_prot == -1) { echo 'Invalid Protocol'; } else { echo 'Protocol #' . $get_prot; } ?> Expected result: ---------------- Invalid Protocol Actual result: -------------- Protocol #0 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60779&edit=1

« previous php.bugs (#166552) next »