diff options
author | Christopher Faylor <me@cgf.cx> | 2005-01-22 21:47:04 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-01-22 21:47:04 +0000 |
commit | c75e4f09ec9ba7349554ed434777994e51ead740 (patch) | |
tree | 358aa56713e84dc5b09b35aaf1de1b414d4d8d39 /winsup/cygwin/spawn.cc | |
parent | 9a0b76dcedb80afc85f478e9ef6d11293fe581ed (diff) | |
download | cygnal-c75e4f09ec9ba7349554ed434777994e51ead740.tar.gz cygnal-c75e4f09ec9ba7349554ed434777994e51ead740.tar.bz2 cygnal-c75e4f09ec9ba7349554ed434777994e51ead740.zip |
* spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to make sure
that a stub process does not keep the current working directory busy after the
"execed" process has exited.
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r-- | winsup/cygwin/spawn.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 0c26ab23d..68a49f4fe 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -809,9 +809,14 @@ spawn_guts (const char * prog_arg, const char *const *argv, dup_proc_pipe essentially a no-op. */ if (myself->wr_proc_pipe) { - /* Make sure that we own wr_proc_pipe just in case we've been - previously execed. */ - myself->sync_proc_pipe (); + myself->sync_proc_pipe (); /* Make sure that we own wr_proc_pipe + just in case we've been previously + execed. */ + SetCurrentDirectory ("c:\\"); /* Move to an innocuous location to + avoid races with other processes + that may want to manipulate the + current directory before this process + has completely exited. */ (void) myself->dup_proc_pipe (pi.hProcess); } } |