This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author jfdp
Recipients jfdp
Date 2008-08-29.00:40:11
SpamBayes Score 1.0625314e-08
Marked as misclassified No
Message-id <1219970413.68.0.263157286627.issue3719@psf.upfronthosting.co.za>
In-reply-to
Content
If you install python in a location which has a space
or shell character in the path then platform.platform()
will generate an error and/or fail to get all platform
information.

For example

$ pwd
/disk0/tmp/foobar(2)/python2.4/bin
$ ./python
Python 2.4.4 (#8, Apr 11 2008, 11:42:39) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> print platform.platform()
sh: syntax error at line 1: `(' unexpected
SunOS-5.10-sun4u-sparc-32bit

Note the error from 'sh' was well as the fact that "ELF"
is missing from the platform string. If you are in a path
with a space then it silently fails to identify "ELF".

The problem is in platform.py: _syscmd_file(target,default='')
in particular this line:

f = os.popen('file %s 2> /dev/null' % target)

This should be:

f = os.popen('file "%s" 2> /dev/null' % target)

Note the double quotes to protect the path from the shell.

I've examined the 2.5, 2.6 and 3.0 source and they all
have this same problem.
History
Date User Action Args
2008-08-29 00:40:13jfdpsetrecipients: + jfdp
2008-08-29 00:40:13jfdpsetmessageid: <1219970413.68.0.263157286627.issue3719@psf.upfronthosting.co.za>
2008-08-29 00:40:12jfdplinkissue3719 messages
2008-08-29 00:40:11jfdpcreate