Bug #60779 [Com]: Incorrect return value for getprotobyname
| From: | phpmpan at mpan dot pl | 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