OSDN Git Service

Fix bug in MacAddress.fromString()
authorHugo Benichi <hugobenichi@google.com>
Tue, 5 Dec 2017 04:14:08 +0000 (13:14 +0900)
committerHugo Benichi <hugobenichi@google.com>
Tue, 5 Dec 2017 04:14:08 +0000 (13:14 +0900)
Test: runtest frameworks-net
Bug: 69390696
Change-Id: I83f01e4915092e08ed201d9b6738bb02498d3bba

core/java/android/net/MacAddress.java
tests/net/java/android/net/MacAddressTest.java

index 441fad8..5620a62 100644 (file)
@@ -280,9 +280,8 @@ public final class MacAddress implements Parcelable {
             throw new IllegalArgumentException(addr + " was not a valid MAC address");
         }
         long longAddr = 0;
-        int index = ETHER_ADDR_LEN;
-        while (index-- > 0) {
-            int x = Integer.valueOf(parts[index], 16);
+        for (int i = 0; i < parts.length; i++) {
+            int x = Integer.valueOf(parts[i], 16);
             if (x < 0 || 0xff < x) {
                 throw new IllegalArgumentException(addr + "was not a valid MAC address");
             }
index 772ff8d..558dbb6 100644 (file)
@@ -161,6 +161,9 @@ public class MacAddressTest {
 
             assertEquals(mac, MacAddress.fromString(stringRepr));
             assertEquals(mac, MacAddress.fromBytes(bytesRepr));
+
+            assertEquals(mac, MacAddress.fromString(MacAddress.stringAddrFromByteAddr(bytesRepr)));
+            assertEquals(mac, MacAddress.fromBytes(MacAddress.byteAddrFromStringAddr(stringRepr)));
         }
     }