]> granicus.if.org Git - python/commitdiff
[3.6] bpo-33542: Ignore DUID in uuid.get_node on Windows. (GH-6922) (GH-7014)
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 21 May 2018 12:20:55 +0000 (15:20 +0300)
committerGitHub <noreply@github.com>
Mon, 21 May 2018 12:20:55 +0000 (15:20 +0300)
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 32a48eaeacff197cdef1e4e5724e511f8e5761e0..db8b2ef94ed485748a8bbd069e7c8da54f6c5c75 100644 (file)
@@ -438,7 +438,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):
                     return int(value.replace('-', ''), 16)
 
 def _netbios_getnode():
index cda62f579095270d2667ffc37a7c3da19686e9eb..8414b9140f51fc237cbc41f4548ab6dd007a8578 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -415,6 +415,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