mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Fix bugs:
457466: popenx() argument mangling hangs python
226766: popen('python -c"...."') tends to hang
Fixes argument quoting in w9xpopen.exe for Windows 9x. w9xpopen.exe
also never attempts to display a MessageBox when not executed
interactively.
Added test_popen() test. This test currently just executes
"python -c ..." as a child process, and checks that the expected
arguments were all recieved correctly by the child process. This
test succeeds for me on Win9x, win2k and Linux, and I hope it does
for other popen supported platforms too :)
This commit is contained in:
parent
b0aaec5706
commit
e7fefbf68d
4 changed files with 98 additions and 5 deletions
|
|
@ -3285,9 +3285,15 @@ _PyPopenCreateProcess(char *cmdstring,
|
|||
|
||||
s2 = (char *)_alloca(x);
|
||||
ZeroMemory(s2, x);
|
||||
/* To maintain correct argument passing semantics,
|
||||
we pass the command-line as it stands, and allow
|
||||
quoting to be applied. w9xpopen.exe will then
|
||||
use its argv vector, and re-quote the necessary
|
||||
args for the ultimate child process.
|
||||
*/
|
||||
PyOS_snprintf(
|
||||
s2, x,
|
||||
"%s \"%s%s%s\"",
|
||||
"\"%s\" %s%s%s",
|
||||
modulepath,
|
||||
s1,
|
||||
s3,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue