[java-opensaml COMMIT] in /trunk/opensaml-util/src: main/java/org/opensaml/util/net/IPRange.java test/java/org/opensa...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Sep 20 15:15:15 BST 2011
Author: iay
Date: Tue Sep 20 15:15:15 2011
New Revision: 2893
URL: http://svn.shibboleth.net/view/java-opensaml?rev=2893&view=rev
Log:
Validate prefix length early to avoid throwing something other than IllegalArgumentException.
Modified:
trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java
trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java
Modified: trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java?rev=2893&r1=2892&r2=2893&view=diff
==============================================================================
--- trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java (original)
+++ trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java Tue Sep 20 15:15:15 2011
@@ -56,6 +56,10 @@
if (addressLength != 32 && addressLength != 128) {
throw new IllegalArgumentException("Network address was neither an IPv4 or IPv6 address");
}
+
+ if (maskSize < 0 || maskSize > addressLength) {
+ throw new IllegalArgumentException("prefix length must be in range 0 to " + addressLength);
+ }
network = toBitSet(networkAddress);
mask = new BitSet(addressLength);
Modified: trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java?rev=2893&r1=2892&r2=2893&view=diff
==============================================================================
--- trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java (original)
+++ trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java Tue Sep 20 15:15:15 2011
@@ -20,11 +20,13 @@
public void validV4Addresses() {
IPRange.parseCIDRBlock("1.2.3.4/32");
IPRange.parseCIDRBlock("0.0.0.0/8");
+ IPRange.parseCIDRBlock("0.0.0.0/0");
}
@Test
public void validV6Addresses() {
IPRange.parseCIDRBlock("0:0:0:0:0:0:0:0/128");
+ IPRange.parseCIDRBlock("0:0:0:0:0:0:0:0/0");
IPRange.parseCIDRBlock("1234:5678:90ab:cdef:FfFf:AaAa:BBBB:CCCC/128");
IPRange.parseCIDRBlock("1234:5678::BBBB:CCCC/128");
IPRange.parseCIDRBlock("2001:630:200::/48");
@@ -42,6 +44,9 @@
testInvalid("1/32");
testInvalid("1.2/32");
testInvalid("1.2.3/32");
+ testInvalid("1.2.3.4/33");
+ testInvalid("1.2.3.4/-3");
+ testInvalid("1.2.3.4/wrong");
}
@Test
@@ -49,6 +54,9 @@
testInvalid("0:0/128");
testInvalid("1:2:3:4:5:6:7/128");
testInvalid("::0BAD::7/128");
+ testInvalid("1:2:3:4:5:6:7:8/-5");
+ testInvalid("1:2:3:4:5:6:7:8/129");
+ testInvalid("1:2:3:4:5:6:7:8/wrong");
}
}
More information about the commits
mailing list