From 4c5331447561250bc1172dd4310351cf0707f056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Fran=C3=A7ois=20Natali?= Date: Sun, 25 Aug 2013 18:22:49 +0200 Subject: Issue #18763: subprocess: The file descriptors are now closed after calling the preexec_fn callback, which may open file descriptors. --- Lib/subprocess.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 50bec29..814cfbe 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -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: -- cgit v0.12