From 7100fedbbb38c7bc86615f00d79b57a325aa6893 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 2 Dec 2016 17:03:39 +0100 Subject: [PATCH] (util.inc) php7 fix ip_in_subnet() --- src/etc/inc/util.inc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index ae8cf48ca..2de517244 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -1168,11 +1168,14 @@ function ip_in_subnet($addr,$subnet) { if (is_ipaddrv6($addr)) { return (Net_IPv6::isInNetmask($addr, $subnet)); - } else { /* XXX: Maybe check for IPv4 */ + } elseif (is_ipaddrv4($addr)) { list($ip, $mask) = explode('/', $subnet); - $mask = (0xffffffff << (32 - $mask)) & 0xffffffff; - return ((ip2long($addr) & $mask) == (ip2long($ip) & $mask)); + if (is_ipaddrv4($ip) && $mask <= 32) { + $mask = (0xffffffff << (32 - $mask)) & 0xffffffff; + return ((ip2long($addr) & $mask) == (ip2long($ip) & $mask)); + } } + return false; } function is_private_ip($iptocheck)