diff options
author | Renato Botelho <garga@FreeBSD.org> | 2016-08-31 14:33:36 +0000 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2016-08-31 14:33:36 +0000 |
commit | d1b3699800eb797cddf0f4ecde238e584311d833 (patch) | |
tree | 16c7842625b22f6b2b9e13ada877cee5462228f7 | |
parent | 112e0d26bdeeb11479180ad42872c74a3b08836b (diff) | |
download | ports-d1b3699800eb797cddf0f4ecde238e584311d833.tar.gz ports-d1b3699800eb797cddf0f4ecde238e584311d833.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)
Notes
Notes:
svn path=/head/; revision=421168
-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; + |