[Python-checkins] cpython (3.2): #16112: platform.architecture does not correctly escape argument to

jesus.cea python-checkins at python.org
Fri Oct 5 05:19:02 CEST 2012


http://hg.python.org/cpython/rev/04f39958aea9
changeset:   79486:04f39958aea9
branch:      3.2
parent:      79464:f6aaac839d83
user:        Jesus Cea <jcea at jcea.es>
date:        Fri Oct 05 04:58:38 2012 +0200
summary:
  #16112: platform.architecture does not correctly escape argument to /usr/bin/file. Use 'communicate()' and decode the bytes

files:
  Lib/platform.py |  7 +++----
  1 files changed, 3 insertions(+), 4 deletions(-)


diff --git a/Lib/platform.py b/Lib/platform.py
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -997,12 +997,11 @@
         return default
     target = _follow_symlinks(target)
     try:
-        with open(DEV_NULL) as dev_null:
-            proc = subprocess.Popen(['file', '-b', '--', target],
-                                    stdout=subprocess.PIPE, stderr=dev_null)
+        proc = subprocess.Popen(['file', '-b', '--', target],
+                stdout=subprocess.PIPE, stderr=dev_null)
     except (AttributeError,os.error):
         return default
-    output = proc.stdout.read()
+    output = proc.communicate()[0].decode("latin-1")
     rc = proc.wait()
     if not output or rc:
         return default

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list