diff options
Diffstat (limited to 'Lib/subprocess.py')
-rw-r--r-- | Lib/subprocess.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 7c229dc785..5438f158cb 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -1000,10 +1000,14 @@ class Popen(object): if errwrite: os.dup2(errwrite, 2) - # 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 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 all other fds, if asked for if close_fds: |