You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2011/11/01 15:13:55 UTC

svn commit: r1196001 - in /commons/proper/net/trunk/src: changes/changes.xml main/java/org/apache/commons/net/util/SubnetUtils.java test/java/org/apache/commons/net/SubnetUtilsTest.java

Author: sebb
Date: Tue Nov  1 14:13:54 2011
New Revision: 1196001

URL: http://svn.apache.org/viewvc?rev=1196001&view=rev
Log:
NET-428 SubnetUtils throws ArrayIndexOutOfBoundsException for new SubnetUtils( "1.2.3.4/32" ).getInfo().getAllAddresses()

Modified:
    commons/proper/net/trunk/src/changes/changes.xml
    commons/proper/net/trunk/src/main/java/org/apache/commons/net/util/SubnetUtils.java
    commons/proper/net/trunk/src/test/java/org/apache/commons/net/SubnetUtilsTest.java

Modified: commons/proper/net/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/changes/changes.xml?rev=1196001&r1=1196000&r2=1196001&view=diff
==============================================================================
--- commons/proper/net/trunk/src/changes/changes.xml (original)
+++ commons/proper/net/trunk/src/changes/changes.xml Tue Nov  1 14:13:54 2011
@@ -59,6 +59,9 @@ The <action> type attribute can be add,u
         <release version="3.0.2-SNAPSHOT" date="TBA" description="
 TBA
         ">
+            <action issue="NET-428" dev="sebb" type="fix">
+            SubnetUtils throws ArrayIndexOutOfBoundsException for new SubnetUtils( "1.2.3.4/32" ).getInfo().getAllAddresses()
+            </action>
             <action issue="NET-421" dev="sebb" type="fix" due-to="Oliver Saggau">
             Problem connecting to TLS/SSL SMTP server using explicit mode.
             </action>

Modified: commons/proper/net/trunk/src/main/java/org/apache/commons/net/util/SubnetUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/org/apache/commons/net/util/SubnetUtils.java?rev=1196001&r1=1196000&r2=1196001&view=diff
==============================================================================
--- commons/proper/net/trunk/src/main/java/org/apache/commons/net/util/SubnetUtils.java (original)
+++ commons/proper/net/trunk/src/main/java/org/apache/commons/net/util/SubnetUtils.java Tue Nov  1 14:13:54 2011
@@ -161,7 +161,11 @@ public class SubnetUtils {
         }
 
         public String[] getAllAddresses() {
-            String[] addresses = new String[getAddressCount()];
+            int ct = getAddressCount();
+            String[] addresses = new String[ct];
+            if (ct == 0) {
+                return addresses;
+            }
             for (int add = low(), j=0; add <= high(); ++add, ++j) {
                 addresses[j] = format(toArray(add));
             }

Modified: commons/proper/net/trunk/src/test/java/org/apache/commons/net/SubnetUtilsTest.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/test/java/org/apache/commons/net/SubnetUtilsTest.java?rev=1196001&r1=1196000&r2=1196001&view=diff
==============================================================================
--- commons/proper/net/trunk/src/test/java/org/apache/commons/net/SubnetUtilsTest.java (original)
+++ commons/proper/net/trunk/src/test/java/org/apache/commons/net/SubnetUtilsTest.java Tue Nov  1 14:13:54 2011
@@ -290,4 +290,20 @@ public class SubnetUtilsTest extends Tes
         } catch (IllegalArgumentException expected) {
         }
     }
+
+    public void testNET428_31() throws Exception {
+        final SubnetUtils subnetUtils = new SubnetUtils("1.2.3.4/31");
+        assertEquals(0,subnetUtils.getInfo().getAddressCount());
+        String[] address = subnetUtils.getInfo().getAllAddresses();
+        assertNotNull(address);
+        assertEquals(0,address.length);
+    }
+
+    public void testNET428_32() throws Exception {
+        final SubnetUtils subnetUtils = new SubnetUtils("1.2.3.4/32");
+        assertEquals(0,subnetUtils.getInfo().getAddressCount());
+        String[] address = subnetUtils.getInfo().getAllAddresses();
+        assertNotNull(address);
+        assertEquals(0,address.length);
+    }
 }