/bin/wifi:  Fix a MAC parsing bug.

MAC addresses to be incremented were stored in an intermediate state
that lost leading zeroes.

Fixes b/34050122.

Change-Id: I7179824ada3034dfc573bf62316bde6cda4db53b
diff --git a/wifi/utils.py b/wifi/utils.py
index c3b237e..198bf16 100644
--- a/wifi/utils.py
+++ b/wifi/utils.py
@@ -120,8 +120,9 @@
 
 def increment_mac_address(mac_address):
   numeric_mac_address = int(''.join(mac_address.split(':')), 16) + 1
-  return ':'.join(octet.encode('hex')
-                  for octet in ('%x' % numeric_mac_address).decode('hex'))
+  numeric_mac_address %= 2 ** 48
+  octets = ('%012x' % numeric_mac_address).decode('hex')
+  return ':'.join(octet.encode('hex') for octet in octets)
 
 
 def get_filename(program, kind, disambiguator, tmp=False):
diff --git a/wifi/utils_test.py b/wifi/utils_test.py
index 0224605..8febea3 100755
--- a/wifi/utils_test.py
+++ b/wifi/utils_test.py
@@ -83,10 +83,20 @@
 
 @wvtest.wvtest
 def increment_mac_address_test():
-  wvtest.WVPASSEQ('12:34:56:78:91',
-                  utils.increment_mac_address('12:34:56:78:90'))
-  wvtest.WVPASSEQ('12:34:56:79:00',
-                  utils.increment_mac_address('12:34:56:78:FF'))
+  """Test increment_mac_address."""
+
+  wvtest.WVPASSEQ('12:34:56:78:90:13',
+                  utils.increment_mac_address('12:34:56:78:90:12'))
+  wvtest.WVPASSEQ('12:34:56:78:91:00',
+                  utils.increment_mac_address('12:34:56:78:90:FF'))
+
+  # b/34050122
+  wvtest.WVPASSEQ('00:0b:6b:ed:eb:ad',
+                  utils.increment_mac_address('00:0b:6b:ed:eb:ac'))
+
+  # b/34050122 (initial misunderstanding of bug, but still worth testing)
+  wvtest.WVPASSEQ('00:00:00:00:00:00',
+                  utils.increment_mac_address('ff:ff:ff:ff:ff:ff'))
 
 
 @wvtest.wvtest