diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 942059a03..628b57304 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +Mon Mar 12 09:47:55 2001 Christopher Faylor + + * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process + is not a cygwin process (suggested by Jason Gouger + ). + Sun Mar 11 16:00:58 2001 Christopher Faylor * child_info.h: Bump magic number for fork/exec/spawn. diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index e9d3659b2..431923dae 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -774,7 +774,8 @@ skip_arg_parsing: case WAIT_OBJECT_0 + 2: if (mode == _P_OVERLAY) { - res |= EXIT_REPARENTING; + if (myself->ppid_handle) + res |= EXIT_REPARENTING; if (!my_parent_is_alive ()) { nwait = 1; diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index dbb55f321..134ad8c59 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -1004,16 +1004,15 @@ stat_dev (DWORD devn, int unit, unsigned long ino, struct stat *buf) sigframe thisframe (mainthread); switch (devn) { - case FH_CONOUT: case FH_PIPEW: buf->st_mode = STD_WBITS; break; - case FH_CONIN: case FH_PIPER: buf->st_mode = STD_RBITS; break; - default: - buf->st_mode = STD_RBITS | S_IWUSR | S_IWGRP | S_IWOTH; + case FH_CONIN: + case FH_CONOUT: + buf->st_mode = STD_RBITS | STD_WBITS; break; }