From ee4134b315d16bb283ebc9e3bcf440128977d22b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Ram=C3=B3n=20L=C3=B3pez?= Date: Sun, 4 Oct 2015 00:26:24 +0200 Subject: [PATCH] [HttpFoundation] Fixes IpUtils::checkIp4 on /0 subnets | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #16055 | License | MIT | Doc PR | Not needed --- src/Symfony/Component/HttpFoundation/IpUtils.php | 6 +++--- src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/IpUtils.php b/src/Symfony/Component/HttpFoundation/IpUtils.php index fb906b6812d23..5e7c607137675 100644 --- a/src/Symfony/Component/HttpFoundation/IpUtils.php +++ b/src/Symfony/Component/HttpFoundation/IpUtils.php @@ -62,12 +62,12 @@ public static function checkIp($requestIp, $ips) public static function checkIp4($requestIp, $ip) { if (false !== strpos($ip, '/')) { - if ('0.0.0.0/0' === $ip) { + list($address, $netmask) = explode('/', $ip, 2); + + if ('0' === $netmask) { return true; } - list($address, $netmask) = explode('/', $ip, 2); - if ($netmask < 1 || $netmask > 32) { return false; } diff --git a/src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php b/src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php index 0002478246ab9..edaa0ca40bbb2 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/IpUtilsTest.php @@ -35,8 +35,7 @@ public function testIpv4Provider() array(true, '192.168.1.1', array('192.168.1.0/24', '1.2.3.4/1')), array(false, '192.168.1.1', array('1.2.3.4/1', '4.3.2.1/1')), array(true, '1.2.3.4', '0.0.0.0/0'), - array(false, '1.2.3.4', '256.256.256/0'), - array(false, '1.2.3.4', '192.168.1.0/0'), + array(true, '1.2.3.4', '192.168.1.0/0'), ); }