aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorgarga <garga@FreeBSD.org>2016-08-31 22:33:36 +0800
committergarga <garga@FreeBSD.org>2016-08-31 22:33:36 +0800
commit0b5165326e615ec7476ff3e77fc5b06701549e91 (patch)
tree16c7842625b22f6b2b9e13ada877cee5462228f7 /net
parent588a0ca2266874e677a24cef9be55ad44262f3af (diff)
downloadfreebsd-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/Makefile1
-rw-r--r--net/pear-Net_IPv6/files/patch-Net_IPv6.php35
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;
+