]> git.pond.sub.org Git - empserver/commitdiff
lwp: Fix unsafe update of LwpSigCaught
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 27 Dec 2020 07:07:24 +0000 (08:07 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sat, 23 Jan 2021 06:08:03 +0000 (07:08 +0100)
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>
src/lib/lwp/sig.c

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