summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/spawn.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-02-15 18:11:50 +0000
committerCorinna Vinschen <corinna@vinschen.de>2011-02-15 18:11:50 +0000
commit8ec562ed284371cbfe6177a977ee1f4328d041c8 (patch)
tree20f78ba61eda80963bceef9244bc70f21beed00f /winsup/cygwin/spawn.cc
parent38e6feddab5c5cb51b22e0d661bdaec62f31bf0d (diff)
downloadcygnal-8ec562ed284371cbfe6177a977ee1f4328d041c8.tar.gz
cygnal-8ec562ed284371cbfe6177a977ee1f4328d041c8.tar.bz2
cygnal-8ec562ed284371cbfe6177a977ee1f4328d041c8.zip
* spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode.
Drop flag if creating new process failed.
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r--winsup/cygwin/spawn.cc3
1 files changed, 2 insertions, 1 deletions
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;
}