diff options
author | garga <garga@FreeBSD.org> | 2016-08-31 22:33:36 +0800 |
---|---|---|
committer | garga <garga@FreeBSD.org> | 2016-08-31 22:33:36 +0800 |
commit | 0b5165326e615ec7476ff3e77fc5b06701549e91 (patch) | |
tree | 16c7842625b22f6b2b9e13ada877cee5462228f7 /net | |
parent | 588a0ca2266874e677a24cef9be55ad44262f3af (diff) | |
download | freebsd-ports-gnome-0b5165326e615ec7476ff3e77fc5b06701549e91.tar.gz freebsd-ports-gnome-0b5165326e615ec7476ff3e77fc5b06701549e91.tar.zst freebsd-ports-gnome-0b5165326e615ec7476ff3e77fc5b06701549e91.zip |
Fix some bad IPv6 validation issues
Following bad addresses are being validated as good by checkIPv6()
1:2:3:4:5:6:7:8:1.2.3.4
::1:2:3:4:5:6:7:8
1:2:3:4:5:6:7:8::
1:2:3:4:5:6:::8
::::a
::::
1::2::3
Obtained from: pfSense
MFH: 2016Q3
Sponsored by: Rubicon Communications (Netgate)
Diffstat (limited to 'net')
-rw-r--r-- | net/pear-Net_IPv6/Makefile | 1 | ||||
-rw-r--r-- | net/pear-Net_IPv6/files/patch-Net_IPv6.php | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/net/pear-Net_IPv6/Makefile b/net/pear-Net_IPv6/Makefile index 28eaf19ccdad..4487c49b87ae 100644 --- a/net/pear-Net_IPv6/Makefile +++ b/net/pear-Net_IPv6/Makefile @@ -3,6 +3,7 @@ PORTNAME= Net_IPv6 DISTVERSION= 1.3.0.b2 +PORTREVISION= 1 CATEGORIES= net pear DISTNAME= ${PORTNAME}-1.3.0b2 diff --git a/net/pear-Net_IPv6/files/patch-Net_IPv6.php b/net/pear-Net_IPv6/files/patch-Net_IPv6.php new file mode 100644 index 000000000000..a49822e6149f --- /dev/null +++ b/net/pear-Net_IPv6/files/patch-Net_IPv6.php @@ -0,0 +1,35 @@ +--- Net/IPv6.php.orig 2016-08-31 14:11:53 UTC ++++ Net/IPv6.php +@@ -550,7 +550,7 @@ class Net_IPv6 + + if (false !== strpos($uip, '::') ) { + +- list($ip1, $ip2) = explode('::', $uip); ++ list($ip1, $ip2) = explode('::', $uip, 2); + + if ("" == $ip1) { + +@@ -601,12 +601,12 @@ class Net_IPv6 + + } else if (-1 == $c1) { // ::xxx + +- $fill = str_repeat('0:', 7-$c2); ++ $fill = str_repeat('0:', max(1, 7-$c2)); + $uip = str_replace('::', $fill, $uip); + + } else if (-1 == $c2) { // xxx:: + +- $fill = str_repeat(':0', 7-$c1); ++ $fill = str_repeat(':0', max(1, 7-$c1)); + $uip = str_replace('::', $fill, $uip); + + } else { // xxx::xxx +@@ -912,7 +912,7 @@ class Net_IPv6 + + } + +- if (8 == $count) { ++ if (8 == $count and empty($ipPart[1])) { + + return true; + |