[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