mirror of
https://github.com/php/php-src.git
synced 2024-11-28 04:14:26 +08:00
Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges)
This commit is contained in:
parent
071513562d
commit
c1e9f628a0
4
NEWS
4
NEWS
@ -6,6 +6,10 @@
|
||||
- Zend Engine:
|
||||
. Indirect reference to $this fails to resolve if direct $this is never used
|
||||
in method. (Scott)
|
||||
|
||||
- Filter extension:
|
||||
. Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges).
|
||||
(Ilia)
|
||||
|
||||
- Intl extension:
|
||||
. Fixed bug #53512 (NumberFormatter::setSymbol crash on bogus $attr values).
|
||||
|
@ -710,8 +710,11 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
|
||||
if (flags & FILTER_FLAG_NO_RES_RANGE) {
|
||||
if (
|
||||
(ip[0] == 0) ||
|
||||
(ip[0] == 128 && ip[1] == 0) ||
|
||||
(ip[0] == 191 && ip[1] == 255) ||
|
||||
(ip[0] == 169 && ip[1] == 254) ||
|
||||
(ip[0] == 192 && ip[1] == 0 && ip[2] == 2) ||
|
||||
(ip[0] == 127 && ip[1] == 0 && ip[2] == 0 && ip[3] == 1) ||
|
||||
(ip[0] >= 224 && ip[0] <= 255)
|
||||
) {
|
||||
RETURN_VALIDATION_FAILED
|
||||
@ -732,6 +735,9 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
|
||||
RETURN_VALIDATION_FAILED
|
||||
}
|
||||
}
|
||||
if (flags & FILTER_FLAG_NO_RES_RANGE && Z_STRLEN_P(value) == 3 && !strcmp("::1", Z_STRVAL_P(value))) {
|
||||
RETURN_VALIDATION_FAILED
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ bool(false)
|
||||
string(9) "127.0.0.1"
|
||||
bool(false)
|
||||
string(12) "192.0.34.166"
|
||||
string(9) "127.0.0.1"
|
||||
bool(false)
|
||||
string(9) "192.0.0.1"
|
||||
string(12) "192.0.34.166"
|
||||
bool(false)
|
||||
|
28
ext/filter/tests/bug53150.phpt
Normal file
28
ext/filter/tests/bug53150.phpt
Normal file
@ -0,0 +1,28 @@
|
||||
--TEST--
|
||||
Bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges)
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("filter")) die("skip"); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(filter_var('127.0.0.1', FILTER_VALIDATE_IP));
|
||||
var_dump(filter_var("::1", FILTER_VALIDATE_IP));
|
||||
|
||||
var_dump(filter_var('127.0.0.1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE));
|
||||
var_dump(filter_var('::1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE));
|
||||
|
||||
var_dump(filter_var('128.0.0.1', FILTER_VALIDATE_IP));
|
||||
var_dump(filter_var('128.0.0.1', FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE));
|
||||
|
||||
var_dump(filter_var('191.255.0.0', FILTER_VALIDATE_IP));
|
||||
var_dump(filter_var('191.255.0.0', FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE));
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(9) "127.0.0.1"
|
||||
string(3) "::1"
|
||||
bool(false)
|
||||
bool(false)
|
||||
string(9) "128.0.0.1"
|
||||
bool(false)
|
||||
string(11) "191.255.0.0"
|
||||
bool(false)
|
Loading…
Reference in New Issue
Block a user