]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-98415: Fix uuid.getnode() ifconfig implementation (#98423)
authorChaim Sanders <csanders-git@users.noreply.github.com>
Wed, 2 Nov 2022 18:41:20 +0000 (11:41 -0700)
committerGitHub <noreply@github.com>
Wed, 2 Nov 2022 18:41:20 +0000 (19:41 +0100)
The uuid.getnode() function has multiple implementations, tested sequentially.
The ifconfig implementation was incorrect and always failed: fix it.

In practice, functions of libuuid library are preferred, if available:
uuid_generate_time_safe(), uuid_create() or uuid_generate_time().

Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
Lib/uuid.py
Misc/NEWS.d/next/Core and Builtins/2022-10-19-01-01-08.gh-issue-98415.ZS2eWh.rst [new file with mode: 0644]

index 8fe2479f3f22cfec686e5c01d9d9b104f7ef90ff..e863b631877f6d854d13ac82789e6cde4273532a 100644 (file)
@@ -371,7 +371,12 @@ def _get_command_stdout(command, *args):
         # for are actually localized, but in theory some system could do so.)
         env = dict(os.environ)
         env['LC_ALL'] = 'C'
-        proc = subprocess.Popen((executable,) + args,
+        # Empty strings will be quoted by popen so we should just ommit it
+        if args != ('',):
+            command = (executable, *args)
+        else:
+            command = (executable,)
+        proc = subprocess.Popen(command,
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.DEVNULL,
                                 env=env)
@@ -511,7 +516,7 @@ def _ifconfig_getnode():
         mac = _find_mac_near_keyword('ifconfig', args, keywords, lambda i: i+1)
         if mac:
             return mac
-        return None
+    return None
 
 def _ip_getnode():
     """Get the hardware address on Unix by running ip."""
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-10-19-01-01-08.gh-issue-98415.ZS2eWh.rst b/Misc/NEWS.d/next/Core and Builtins/2022-10-19-01-01-08.gh-issue-98415.ZS2eWh.rst
new file mode 100644 (file)
index 0000000..af2db1f
--- /dev/null
@@ -0,0 +1 @@
+Fix detection of MAC addresses for :mod:`uuid` on certain OSs. Patch by Chaim Sanders