This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
Re: [Patch] Fixing the PROCESS_DUP_HANDLE security hole.
I tried my spawn(P_DETACH) example (updated since yesterday)
with the latest snapshot, this time on NT.
#include <stdio.h>
#include <unistd.h>
#include <process.h>
main()
{
spawnl(_P_DETACH, "/c/WINNT/system32/notepad", "notepad", 0);
printf("Spawn done\n");
/* Keep working */
sleep(10);
printf("Exiting\n");
}
New problem is with gcc (gcc version 3.3.3 (cygwin special))
~/try> uname -a
CYGWIN_NT-4.0 usched40576 1.5.12(0.116/4/2) 2004-11-10 08:34 i686 unknown unknown Cygwin
~/try> gcc -o try_spawn try_spawn.c
~/try>
~/try> uname -a
CYGWIN_NT-4.0 usched40576 1.5.13s(0.117/4/2) 20041221 16:19:37 i686 unknown unknown Cygwin
~/try> gcc -o xxx try_spawn.c
In file included from /usr/include/stdio.h:45,
from try_spawn.c:1:
/usr/include/sys/reent.h:810: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
When running try_spawn with the snapshot, during the sleep period
ps reports
690 443 690 232 0 11054 10:32:21 <defunct>
464 690 690 464 0 11054 10:32:21 /c/WINNT/system32/notepad
Similarly when running try_spawn in the background,
bash reports "Done" before the job has terminated:
~/try> ./try_spawn.exe &
[1] 740
~/try> Spawn done
[1]+ Done ./try_spawn.exe
~/try> Exiting