From: Jesus Cea Date: Fri, 5 Oct 2012 02:58:38 +0000 (+0200) Subject: #16112: platform.architecture does not correctly escape argument to /usr/bin/file... X-Git-Tag: v3.2.4rc1~470 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=adc8211e0084126c1d3190022929c3bffef12ce6;p=thirdparty%2FPython%2Fcpython.git #16112: platform.architecture does not correctly escape argument to /usr/bin/file. Use 'communicate()' and decode the bytes --- diff --git a/Lib/platform.py b/Lib/platform.py index 6776a2515dbc..f2dd5206e30b 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -997,12 +997,11 @@ def _syscmd_file(target,default=''): 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