]> granicus.if.org Git - python/commitdiff
bpo-33542: Ignore DUID in uuid.get_node on Windows. (GH-6922)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 20 May 2018 15:40:10 +0000 (08:40 -0700)
committerGitHub <noreply@github.com>
Sun, 20 May 2018 15:40:10 +0000 (08:40 -0700)
uuid._ipconfig_getnode did not validate the maximum length of the value,
so long as the value had the same type of formatting as a MAC address.
This let it select DUIDs as MAC addresses. It now requires an exact
length match.
(cherry picked from commit c66c342cb42ab8a88884527ddfe3a5086bc06316)

Co-authored-by: CtrlZvi <viz+github@flippedperspective.com>
Lib/uuid.py
Misc/ACKS
Misc/NEWS.d/next/Library/2018-05-16-09-30-27.bpo-33542.idNAcs.rst [new file with mode: 0644]

index 9cb73e87718122c3a4cd7ee38d1e21e2de996177..66383218e70c0d52c8d7862abe6cdd7106f82f2c 100644 (file)
@@ -488,7 +488,7 @@ def _ipconfig_getnode():
         with proc:
             for line in proc.stdout:
                 value = line.split(':')[-1].strip().lower()
-                if re.match('([0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]', value):
+                if re.fullmatch('(?:[0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]', value):
                     mac = int(value.replace('-', ''), 16)
                     if _is_universal(mac):
                         return mac
index ffc932b08607a108d197fa745487234123de221c..31ad80f8bc9c98951e6ecf656f4555551673f46d 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -426,6 +426,7 @@ Ulrich Eckhardt
 David Edelsohn
 John Edmonds
 Grant Edwards
+Zvi Effron
 John Ehresman
 Tal Einat
 Eric Eisner
diff --git a/Misc/NEWS.d/next/Library/2018-05-16-09-30-27.bpo-33542.idNAcs.rst b/Misc/NEWS.d/next/Library/2018-05-16-09-30-27.bpo-33542.idNAcs.rst
new file mode 100644 (file)
index 0000000..16ba799
--- /dev/null
@@ -0,0 +1,2 @@
+Prevent ``uuid.get_node`` from using a DUID instead of a MAC on Windows.
+Patch by Zvi Effron