From f6d44667f236c565484337661a1ab4ebdebc2520 Mon Sep 17 00:00:00 2001 From: Giacomo Tesio Date: Mon, 29 May 2017 01:11:07 +0200 Subject: [PATCH] libposix: fix bind #p and POSIX_kill sigrtmin/sigrtmax usage --- sys/src/lib/posix/sigchlds.c | 3 ++- sys/src/lib/posix/signals.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/src/lib/posix/sigchlds.c b/sys/src/lib/posix/sigchlds.c index bf6e3cc..c22b9d8 100644 --- a/sys/src/lib/posix/sigchlds.c +++ b/sys/src/lib/posix/sigchlds.c @@ -37,7 +37,7 @@ release_inherited_resources(void) { notify(nil); rfork(RFCNAMEG|RFCENVG|RFNOTEG|RFCFDG); - bind("#P", "/proc", MREPL); + bind("#p", "/proc", MREPL); rfork(RFNOMNT); } @@ -138,6 +138,7 @@ fork_with_sigchld(int *errnop) case 0: /* C2P here: * - create child + * - wait for it to get a copy of everything * - release all inherited resources * - install forwarding_note_handler * - send to P2C the child pid diff --git a/sys/src/lib/posix/signals.c b/sys/src/lib/posix/signals.c index 2558287..b54501e 100644 --- a/sys/src/lib/posix/signals.c +++ b/sys/src/lib/posix/signals.c @@ -335,6 +335,7 @@ POSIX_kill(int *errnop, int pid, int sig) signal = __code_to_signal_map[sig]; if(signal == 0 + &&(__sigrtmin != 0 && __sigrtmax != 0) &&(sig < __sigrtmin || sig > __sigrtmax)) sysfatal("libposix: undefined signal %d", sig); if(pid == getpid())