Commit 95038fa5 authored by Jesus Cea's avatar Jesus Cea

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

parent 7c0a87f2
...@@ -113,7 +113,7 @@ __copyright__ = """ ...@@ -113,7 +113,7 @@ __copyright__ = """
__version__ = '1.0.7' __version__ = '1.0.7'
import sys,string,os,re import sys,string,os,re,subprocess
### Globals & Constants ### Globals & Constants
...@@ -1023,13 +1023,16 @@ def _syscmd_file(target,default=''): ...@@ -1023,13 +1023,16 @@ 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 "%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 = string.strip(f.read()) 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:
......
...@@ -77,6 +77,7 @@ Reimer Behrends ...@@ -77,6 +77,7 @@ Reimer Behrends
Ben Bell Ben Bell
Thomas Bellman Thomas Bellman
Alexander “Саша” Belopolsky Alexander “Саша” Belopolsky
David Benjamin
Andrew Bennetts Andrew Bennetts
Andy Bensky Andy Bensky
Bennett Benson Bennett Benson
......
...@@ -143,6 +143,9 @@ Library ...@@ -143,6 +143,9 @@ Library
io.BytesIO and io.StringIO objects now raise ValueError when the object has io.BytesIO and io.StringIO objects now raise ValueError when the object has
been closed. Patch by Alessandro Moura. been closed. Patch by Alessandro Moura.
- 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