diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2011-02-15 21:11:50 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2011-02-15 21:11:50 +0300 |
commit | 8ec562ed284371cbfe6177a977ee1f4328d041c8 (patch) | |
tree | 20f78ba61eda80963bceef9244bc70f21beed00f | |
parent | 38e6feddab5c5cb51b22e0d661bdaec62f31bf0d (diff) |
* spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode.
Drop flag if creating new process failed.
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/spawn.cc | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index fb3d6bbbc..a8cabeaee 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2011-02-15 Corinna Vinschen <corinna@vinschen.de> + * spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode. + Drop flag if creating new process failed. + +2011-02-15 Corinna Vinschen <corinna@vinschen.de> + * Throughout fix copyright dates. 2011-02-15 Corinna Vinschen <corinna@vinschen.de> diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 68e5572a3..df1eb1a68 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -568,7 +568,7 @@ spawn_guts (const char *prog_arg, const char *const *argv, loop: cygheap->user.deimpersonate (); - if (!real_path.iscygexec ()) + if (!real_path.iscygexec () && mode == _P_OVERLAY) myself->process_state |= PID_NOTCYGWIN; if (!cygheap->user.issetuid () @@ -680,6 +680,7 @@ loop: myself->sendsig = myself->exec_sendsig; myself->exec_sendsig = NULL; } + myself->process_state &= ~PID_NOTCYGWIN; res = -1; goto out; } |