Bug #73178 [Com]: FILTER_FLAG_NO_RES_RANGE is defective

From: Date: Tue, 27 Sep 2016 06:29:46 +0000
Subject: Bug #73178 [Com]: FILTER_FLAG_NO_RES_RANGE is defective
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-204291@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73178&edit=1 ID: 73178 Comment by: mlca at tdc dot dk Reported by: mlca at tdc dot dk Summary: FILTER_FLAG_NO_RES_RANGE is defective Status: Duplicate Type: Bug Package: Filter related Operating System: CentOS 7.2 PHP Version: 7.0.11 Assigned To: cmb Block user comment: N Private report: N New Comment: Thanks - should have used the "advanced search" for finding closed duplicates I guess... Previous Comments: ------------------------------------------------------------------------ [2016-09-26 14:02:39] cmb@php.net Indeed, that behavior changed with PHP 7.0.10 due to merging PR #1954; this had already been reported as bug #72972, and the fix is scheduled for PHP 7.0.12. ------------------------------------------------------------------------ [2016-09-26 13:16:20] mlca at tdc dot dk Description: ------------ Somewhere between PHP 7.0.8 and 7.0.11 FILTER_FLAG_NO_RES_RANGE behaviour has been changed. In PHP 7.0.11 RFC1918 IP addresses are now matched as reserved as well as private. Test script: --------------- <?php $ips = array("172.16.0.0","172.31.255.255","10.0.0.0","10.255.255.255","127.0.0.1", "0.0.0.0","255.255.255.255","239.224.0.0","100.64.0.0","8.8.8.8"); print "PHP version: " . phpversion() . "\n"; foreach ($ips as $ip) { print "$ip\n"; print " is_reserved=" . ((filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE) === $ip) ? "false\n" : "true\n"); print " is_private=" . ((filter_var($ip, FILTER_VALIDATE_IP ,FILTER_FLAG_NO_PRIV_RANGE) === $ip) ? "false\n" : "true\n"); } Expected result: ---------------- PHP version: 5.6.24 172.16.0.0 is_reserved=false is_private=true 172.31.255.255 is_reserved=false is_private=true 10.0.0.0 is_reserved=false is_private=true 10.255.255.255 is_reserved=false is_private=true 127.0.0.1 is_reserved=true is_private=false 0.0.0.0 is_reserved=true is_private=false 255.255.255.255 is_reserved=true is_private=false 239.224.0.0 is_reserved=true is_private=false 100.64.0.0 is_reserved=true is_private=false 8.8.8.8 is_reserved=false is_private=false PHP version: 7.0.8-0ubuntu0.16.04.2 172.16.0.0 is_reserved=false is_private=true 172.31.255.255 is_reserved=false is_private=true 10.0.0.0 is_reserved=false is_private=true 10.255.255.255 is_reserved=false is_private=true 127.0.0.1 is_reserved=true is_private=false 0.0.0.0 is_reserved=true is_private=false 255.255.255.255 is_reserved=true is_private=false 239.224.0.0 is_reserved=true is_private=false 100.64.0.0 is_reserved=true is_private=false 8.8.8.8 is_reserved=false is_private=false Actual result: -------------- PHP version: 7.0.11 172.16.0.0 is_reserved=true is_private=true 172.31.255.255 is_reserved=true is_private=true 10.0.0.0 is_reserved=true is_private=true 10.255.255.255 is_reserved=true is_private=true 127.0.0.1 is_reserved=true is_private=false 0.0.0.0 is_reserved=true is_private=false 255.255.255.255 is_reserved=true is_private=false 239.224.0.0 is_reserved=true is_private=false 100.64.0.0 is_reserved=true is_private=false 8.8.8.8 is_reserved=false is_private=false ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=73178&edit=1

« previous php.bugs (#204291) next »