summaryrefslogtreecommitdiffstats
path: root/Lib/subprocess.py
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2006-09-06 22:44:51 (GMT)
committerGustavo Niemeyer <gustavo@niemeyer.net>2006-09-06 22:44:51 (GMT)
commitd1b1b8c8827212252f69941562e7989388990a5a (patch)
tree6cb4ecaea796251578c757f23692adbd38203f80 /Lib/subprocess.py
parent8a230b50a160ba8ade992ffd8c35deeab8fbdd38 (diff)
downloadcpython-d1b1b8c8827212252f69941562e7989388990a5a.zip
cpython-d1b1b8c8827212252f69941562e7989388990a5a.tar.gz
cpython-d1b1b8c8827212252f69941562e7989388990a5a.tar.bz2
Fixed bug #1531862: Do not close standard file descriptors in subprocess.
Let's try that once more. Buildbots were broken last time, but probably because tests were sending data to stderr for testing it (sending to a file doesn't touch the problem). The fix is still the same, but tests were reduced (removing tests to be able to fix something is weird, but oh well).
Diffstat (limited to 'Lib/subprocess.py')
-rw-r--r--Lib/subprocess.py12
1 files changed, 4 insertions, 8 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 5438f15..7c229dc 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1000,14 +1000,10 @@ class Popen(object):
if errwrite:
os.dup2(errwrite, 2)
- # Close pipe fds. Make sure we doesn't close the same
- # fd more than once.
- if p2cread:
- os.close(p2cread)
- if c2pwrite and c2pwrite not in (p2cread,):
- os.close(c2pwrite)
- if errwrite and errwrite not in (p2cread, c2pwrite):
- os.close(errwrite)
+ # Close pipe fds. Make sure we don't close the same
+ # fd more than once, or standard fds.
+ for fd in set((p2cread, c2pwrite, errwrite))-set((0,1,2)):
+ if fd: os.close(fd)
# Close all other fds, if asked for
if close_fds: