[Python-checkins] bpo-33542: Ignore DUID in uuid.get_node on Windows. (GH-6922)

Miss Islington (bot) webhook-mailer at python.org
Sun May 20 11:40:13 EDT 2018


https://github.com/python/cpython/commit/073eca39a55b86ec7dd7a437ac0c910751a60ace
commit: 073eca39a55b86ec7dd7a437ac0c910751a60ace
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-05-20T08:40:10-07:00
summary:

bpo-33542: Ignore DUID in uuid.get_node on Windows. (GH-6922)


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 at flippedperspective.com>

files:
A Misc/NEWS.d/next/Library/2018-05-16-09-30-27.bpo-33542.idNAcs.rst
M Lib/uuid.py
M Misc/ACKS

diff --git a/Lib/uuid.py b/Lib/uuid.py
index 9cb73e877181..66383218e70c 100644
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -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
diff --git a/Misc/ACKS b/Misc/ACKS
index ffc932b08607..31ad80f8bc9c 100644
--- 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
index 000000000000..16ba799131f4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-05-16-09-30-27.bpo-33542.idNAcs.rst
@@ -0,0 +1,2 @@
+Prevent ``uuid.get_node`` from using a DUID instead of a MAC on Windows.
+Patch by Zvi Effron



More information about the Python-checkins mailing list