lwp: Fix unsafe update of LwpSigCaught

lwpCatchAwaitedSig() is not reentrant.  lwpInitSigWait() attempts to
protect it by setting an appropriate signal mask, but screws up.  This
could conceivably lose signals.  Messed up when it got added in commit
7183516d9, v4.3.6.  Fix it.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2020-12-27 08:07:24 +01:00
parent 2c12238ecb
commit f15bb68b63

View file

@ -67,7 +67,6 @@ lwpInitSigWait(sigset_t *set)
act.sa_flags = 0; act.sa_flags = 0;
act.sa_mask = *set; act.sa_mask = *set;
sigemptyset(&act.sa_mask);
act.sa_handler = lwpCatchAwaitedSig; act.sa_handler = lwpCatchAwaitedSig;
for (i = 0; i < NSIG; i++) { for (i = 0; i < NSIG; i++) {
if (sigismember(set, i)) if (sigismember(set, i))