diff options
author | CtrlZvi <viz+github@flippedperspective.com> | 2018-05-20 15:03:25 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2018-05-20 15:03:25 (GMT) |
commit | c66c342cb42ab8a88884527ddfe3a5086bc06316 (patch) | |
tree | 63fbe92c9152418de4654f888d0c43af1ca9e9c5 | |
parent | 900c48dba3f3eb8fb03ea766a5646f81c3bf3e9c (diff) | |
download | cpython-c66c342cb42ab8a88884527ddfe3a5086bc06316.zip cpython-c66c342cb42ab8a88884527ddfe3a5086bc06316.tar.gz cpython-c66c342cb42ab8a88884527ddfe3a5086bc06316.tar.bz2 |
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.
-rw-r--r-- | Lib/uuid.py | 2 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-05-16-09-30-27.bpo-33542.idNAcs.rst | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/Lib/uuid.py b/Lib/uuid.py index 9cb73e8..6638321 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 @@ -428,6 +428,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 0000000..16ba799 --- /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 |