From: Derick Rethans Date: Sat, 1 Sep 2007 18:38:39 +0000 (+0000) Subject: - MFH: Fixed bug #42512 (ip2long('255.255.255.255') should return 4294967295 on X-Git-Tag: php-5.2.5RC1~227 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=152d379950ed268b9e40e28ed232f909cb90b60a;p=php - MFH: Fixed bug #42512 (ip2long('255.255.255.255') should return 4294967295 on 64-bit PHP). --- diff --git a/NEWS b/NEWS index 11a0ea0ae5..b337456f26 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,8 @@ PHP NEWS - Added optional parameter $provide_object to debug_backtrace(). (Sebastian) - Upgraded PCRE to version 7.3 (Nuno) +- Fixed bug #42512 (ip2long('255.255.255.255') should return 4294967295 on + 64-bit PHP). (Derick) - Fixed bug #42462 (Segmentation when trying to set an attribute in a DOMElement). (Rob) - Fixed bug #42453 (CGI SAPI does not shut down cleanly with -i/-m/-v cmdline diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index debd925409..5014f9fcb2 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -4340,7 +4340,7 @@ PHP_FUNCTION(ip2long) */ if (Z_STRLEN_PP(str) == sizeof("255.255.255.255") - 1 && !memcmp(Z_STRVAL_PP(str), "255.255.255.255", sizeof("255.255.255.255") - 1)) { - RETURN_LONG(-1); + RETURN_LONG(0xFFFFFFFF); } RETURN_FALSE; diff --git a/ext/standard/tests/network/ip_x86_64.phpt b/ext/standard/tests/network/ip_x86_64.phpt new file mode 100644 index 0000000000..bc3e72c2a2 --- /dev/null +++ b/ext/standard/tests/network/ip_x86_64.phpt @@ -0,0 +1,67 @@ +--TEST-- +ip2long() & long2ip() tests +--SKIPIF-- +32bit platform only"); +?> +--FILE-- + +--EXPECTF-- +int(2130706433) +string(9) "127.0.0.1" +int(167772161) +string(8) "10.0.0.1" +int(4294967295) +string(15) "255.255.255.255" +int(4294967040) +string(13) "255.255.255.0" +int(0) +string(7) "0.0.0.0" +int(1118019956) +string(14) "66.163.161.116" + +Warning: Wrong parameter count for ip2long() in %s on line %d +NULL +bool(false) +bool(false) +int(1869573999) + +Notice: Array to string conversion in %s on line %d +bool(false) + +Warning: Wrong parameter count for long2ip() in %s on line %d +NULL +string(13) "255.254.82.80" +string(7) "0.0.0.0" + +Notice: Array to string conversion in %s on line %d +string(7) "0.0.0.0" +Done