From 21c7a520428b5fc3ae5b081f290d25cb2a2233fd Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Tue, 5 Dec 2017 13:14:08 +0900 Subject: [PATCH] Fix bug in MacAddress.fromString() Test: runtest frameworks-net Bug: 69390696 Change-Id: I83f01e4915092e08ed201d9b6738bb02498d3bba --- core/java/android/net/MacAddress.java | 5 ++--- tests/net/java/android/net/MacAddressTest.java | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/java/android/net/MacAddress.java b/core/java/android/net/MacAddress.java index 441fad88ea..5620a627df 100644 --- a/core/java/android/net/MacAddress.java +++ b/core/java/android/net/MacAddress.java @@ -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"); } diff --git a/tests/net/java/android/net/MacAddressTest.java b/tests/net/java/android/net/MacAddressTest.java index 772ff8d1cc..558dbb69ae 100644 --- a/tests/net/java/android/net/MacAddressTest.java +++ b/tests/net/java/android/net/MacAddressTest.java @@ -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))); } }