From cc36e56b44b013b25a5bea2f9cda309976058dba Mon Sep 17 00:00:00 2001 From: Bobby Bingham Date: Fri, 10 Nov 2017 14:59:01 -0600 Subject: [PATCH 1/1] test sigsetjmp with savesigs=0 --- src/functional/setjmp.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/functional/setjmp.c b/src/functional/setjmp.c index 0a9e4e6..adba1a6 100644 --- a/src/functional/setjmp.c +++ b/src/functional/setjmp.c @@ -46,5 +46,20 @@ int main(void) sigprocmask(SIG_SETMASK, &set, &set); TEST(sigismember(&set, SIGUSR1)==0, "siglongjmp failed to restore mask\n"); + sigemptyset(&set); + sigaddset(&set, SIGUSR1); + sigprocmask(SIG_UNBLOCK, &set, &set); + oldset = set; + + if (!sigsetjmp(sjb, 0)) { + sigemptyset(&set); + sigaddset(&set, SIGUSR1); + sigprocmask(SIG_BLOCK, &set, 0); + siglongjmp(sjb, 1); + } + set = oldset; + sigprocmask(SIG_SETMASK, &set, &set); + TEST(sigismember(&set, SIGUSR1)==1, "siglongjmp incorrectly restored mask\n"); + return t_status; } -- 2.20.1