- MFH: Fixed bug #42512 (ip2long('255.255.255.255') should return 4294967295 on

64-bit PHP).
This commit is contained in:
Derick Rethans 2007-09-01 18:38:39 +00:00
parent c6f777da1f
commit 152d379950
3 changed files with 70 additions and 1 deletions

2
NEWS
View File

@ -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

View File

@ -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;

View File

@ -0,0 +1,67 @@
--TEST--
ip2long() & long2ip() tests
--SKIPIF--
<?php
if (PHP_INT_SIZE == 4) die("skip this test is for >32bit platform only");
?>
--FILE--
<?php
$array = array(
"127.0.0.1",
"10.0.0.1",
"255.255.255.255",
"255.255.255.0",
"0.0.0.0",
"66.163.161.116",
);
foreach ($array as $ip) {
var_dump($long = ip2long($ip));
var_dump(long2ip($long));
}
var_dump(ip2long());
var_dump(ip2long(""));
var_dump(ip2long("777.777.777.777"));
var_dump(ip2long("111.111.111.111"));
var_dump(ip2long(array()));
var_dump(long2ip());
var_dump(long2ip(-110000));
var_dump(long2ip(""));
var_dump(long2ip(array()));
echo "Done\n";
?>
--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