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

From: Date: Fri, 20 Jan 2012 20:06:21 +0000
Subject: Bug #60779 [Com]: Incorrect return value for getprotobyname
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-166657@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: Duplicate Type: Bug Package: *Network Functions Operating System: Debian Squeeze PHP Version: Irrelevant Block user comment: N Private report: N New Comment: There is nothing negative in having your post marked as DUP in this case. I believe it's purely organisational thing and laruence's intention wasn't telling you that you did something wrong. If one of the two reports is closed after fixing an issue, the second one needs to be set to DUP. This is not a contest on who will get more successful reports ;), so it doesn't matter which one it is. The goal was accomplished: PHP is better than it was before. Don't get discouraged and keep helping to improve PHP. Previous Comments: ------------------------------------------------------------------------ [2012-01-20 12:01:04] wojtos at gmail dot com That is a duplicate of this and not the other way around! (id and time). Anyhow. Glad it's fixed. ------------------------------------------------------------------------ [2012-01-20 02:22:30] laruence@php.net dup to #60781 ------------------------------------------------------------------------ [2012-01-18 08:21:40] wojtos at gmail dot com Thank You for your reply. Indeed I checked and it does return FALSE. The bug or rather misinformation lies in the documentation where it states "Returns the protocol number or -1 if the protocol is not found.". When in the test script I checked for === FALSE it worked as expected. ------------------------------------------------------------------------ [2012-01-17 16:25:28] phpmpan at mpan dot pl 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 --------- ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=60779 -- Edit this bug report at https://bugs.php.net/bug.php?id=60779&edit=1

« previous php.bugs (#166657) next »