Commit d3bddaa7 authored by Jesus Cea's avatar Jesus Cea

Closes #16112: platform.architecture does not correctly escape argument to /usr/bin/file

parent fc5c173c
...@@ -111,7 +111,7 @@ __copyright__ = """ ...@@ -111,7 +111,7 @@ __copyright__ = """
__version__ = '1.0.7' __version__ = '1.0.7'
import sys, os, re import sys, os, re, subprocess
### Globals & Constants ### Globals & Constants
...@@ -995,13 +995,15 @@ def _syscmd_file(target,default=''): ...@@ -995,13 +995,15 @@ def _syscmd_file(target,default=''):
if sys.platform in ('dos','win32','win16','os2'): if sys.platform in ('dos','win32','win16','os2'):
# XXX Others too ? # XXX Others too ?
return default return default
target = _follow_symlinks(target).replace('"', '\\"') target = _follow_symlinks(target)
try: try:
f = os.popen('file -b "%s" 2> %s' % (target, DEV_NULL)) with open(DEV_NULL) as dev_null:
proc = subprocess.Popen(['file', '-b', '--', target],
stdout=subprocess.PIPE, stderr=dev_null)
except (AttributeError,os.error): except (AttributeError,os.error):
return default return default
output = f.read().strip() output = proc.stdout.read()
rc = f.close() rc = proc.wait()
if not output or rc: if not output or rc:
return default return default
else: else:
......
...@@ -87,6 +87,7 @@ Ben Bell ...@@ -87,6 +87,7 @@ Ben Bell
Thomas Bellman Thomas Bellman
Alexander “Саша” Belopolsky Alexander “Саша” Belopolsky
Eli Bendersky Eli Bendersky
David Benjamin
Andrew Bennetts Andrew Bennetts
Andy Bensky Andy Bensky
Bennett Benson Bennett Benson
......
...@@ -160,6 +160,9 @@ Library ...@@ -160,6 +160,9 @@ Library
- Issue #15509: webbrowser.UnixBrowser no longer passes empty arguments to - Issue #15509: webbrowser.UnixBrowser no longer passes empty arguments to
Popen when %action substitutions produce empty strings. Popen when %action substitutions produce empty strings.
- Issue #16112: platform.architecture does not correctly escape argument to
/usr/bin/file. Patch by David Benjamin.
- Issue #12776,#11839: call argparse type function (specified by add_argument) - Issue #12776,#11839: call argparse type function (specified by add_argument)
only once. Before, the type function was called twice in the case where the only once. Before, the type function was called twice in the case where the
default was specified and the argument was given as well. This was default was specified and the argument was given as well. This was
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment