Skip to content

Commit

Permalink
[3.6] bpo-32370: Use the correct encoding for ipconfig output in the …
Browse files Browse the repository at this point in the history
…uuid module. (GH-5608). (#5654)

(cherry picked from commit da6c3da)


Co-authored-by: Segev Finer <segev208@gmail.com>
  • Loading branch information
serhiy-storchaka and segevfiner committed Feb 13, 2018
1 parent 9fad857 commit c3f9d7e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
10 changes: 6 additions & 4 deletions Lib/uuid.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ def _netstat_getnode():

def _ipconfig_getnode():
"""Get the hardware address on Windows by running ipconfig.exe."""
import os, re
import os, re, subprocess
dirs = ['', r'c:\windows\system32', r'c:\winnt\system32']
try:
import ctypes
Expand All @@ -430,11 +430,13 @@ def _ipconfig_getnode():
pass
for dir in dirs:
try:
pipe = os.popen(os.path.join(dir, 'ipconfig') + ' /all')
proc = subprocess.Popen([os.path.join(dir, 'ipconfig'), '/all'],
stdout=subprocess.PIPE,
encoding="oem")
except OSError:
continue
with pipe:
for line in pipe:
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):
return int(value.replace('-', ''), 16)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Use the correct encoding for ipconfig output in the uuid module.
Patch by Segev Finer.

0 comments on commit c3f9d7e

Please sign in to comment.