Skip to content

Commit 2f7cd46

Browse files
committed
Merge branch 'PHP-8.1'
* PHP-8.1: Fix FILTER_FLAG_NO_RES_RANGE flag
2 parents 9a59417 + a000af6 commit 2f7cd46

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

ext/filter/logical_filters.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -937,7 +937,7 @@ void php_filter_validate_ip(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
937937
&& ip[4] == 0 && ip[5] == 0 && ip[6] == 0 && (ip[7] == 0 || ip[7] == 1))
938938
|| (ip[0] == 0x5f)
939939
|| (ip[0] >= 0xfe80 && ip[0] <= 0xfebf)
940-
|| ((ip[0] == 0x2001 && ip[1] == 0x0db8) || (ip[1] >= 0x0010 && ip[1] <= 0x001f))
940+
|| (ip[0] == 0x2001 && (ip[1] == 0x0db8 || (ip[1] >= 0x0010 && ip[1] <= 0x001f)))
941941
|| (ip[0] == 0x3ff3)
942942
) {
943943
RETURN_VALIDATION_FAILED

ext/filter/tests/bug47435.phpt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ var_dump(filter_var("fe80:5:6::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
1414
var_dump(filter_var("fe80:5:6::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE));
1515
var_dump(filter_var("2001:0db8::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
1616
var_dump(filter_var("2001:0db8::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE));
17+
var_dump(filter_var("2001:0010::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
18+
var_dump(filter_var("2001:0010::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE));
19+
var_dump(filter_var("240b:0010::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
20+
var_dump(filter_var("240b:0010::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE));
1721
var_dump(filter_var("5f::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
1822
var_dump(filter_var("5f::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_RES_RANGE));
1923
var_dump(filter_var("3ff3::1", FILTER_VALIDATE_IP, FILTER_FLAG_IPV6));
@@ -30,6 +34,10 @@ string(11) "fe80:5:6::1"
3034
bool(false)
3135
string(12) "2001:0db8::1"
3236
bool(false)
37+
string(12) "2001:0010::1"
38+
bool(false)
39+
string(12) "240b:0010::1"
40+
string(12) "240b:0010::1"
3341
string(5) "5f::1"
3442
bool(false)
3543
string(7) "3ff3::1"

0 commit comments

Comments
 (0)