]> granicus.if.org Git - python/commitdiff
Issue #18763: subprocess: The file descriptors are now closed after calling the
authorCharles-François Natali <cf.natali@gmail.com>
Sun, 25 Aug 2013 16:22:49 +0000 (18:22 +0200)
committerCharles-François Natali <cf.natali@gmail.com>
Sun, 25 Aug 2013 16:22:49 +0000 (18:22 +0200)
preexec_fn callback, which may open file descriptors.

Lib/subprocess.py

index 50bec291c5a51a299572f5af8cea4538c8ab95b3..814cfbe60f19d9fbc9b117fc51c55a24cddfe4a3 100644 (file)
@@ -1247,16 +1247,17 @@ class Popen(object):
                                     os.close(fd)
                                     closed.add(fd)
 
-                            # Close all other fds, if asked for
-                            if close_fds:
-                                self._close_fds(but=errpipe_write)
-
                             if cwd is not None:
                                 os.chdir(cwd)
 
                             if preexec_fn:
                                 preexec_fn()
 
+                            # Close all other fds, if asked for - after
+                            # preexec_fn(), which may open FDs.
+                            if close_fds:
+                                self._close_fds(but=errpipe_write)
+
                             if env is None:
                                 os.execvp(executable, args)
                             else: