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

This commit is contained in:
Jesus Cea 2012-10-04 13:58:22 +02:00
commit 677ffd16bf
3 changed files with 12 additions and 5 deletions

View File

@ -112,7 +112,7 @@ __copyright__ = """
__version__ = '1.0.7' __version__ = '1.0.7'
import collections import collections
import sys, os, re import sys, os, re, subprocess
### Globals & Constants ### Globals & Constants
@ -922,13 +922,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 -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:

View File

@ -93,6 +93,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

View File

@ -65,6 +65,9 @@ Library
- Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after - Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after
`datetime.MAXYEAR`. Patch by Cédric Krier. `datetime.MAXYEAR`. Patch by Cédric Krier.
- Issue #16112: platform.architecture does not correctly escape argument to
/usr/bin/file. Patch by David Benjamin.
- Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML - Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML
elements 'meta' and 'param'. elements 'meta' and 'param'.