X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fsignal%2Fsigsetjmp.c;h=01ba0dffeddf4f7502c4db31fc251f1bdb00226a;hp=5c9370740e43e57c5c1997ee6a8ed34bbcec6d58;hb=c5faf1bf09c01641e74844c4bfb0f129bc3974a1;hpb=5b91c2233583ed2a9512269223221186d9a79fc6 diff --git a/src/signal/sigsetjmp.c b/src/signal/sigsetjmp.c index 5c937074..01ba0dff 100644 --- a/src/signal/sigsetjmp.c +++ b/src/signal/sigsetjmp.c @@ -9,9 +9,7 @@ int sigsetjmp(sigjmp_buf buf, int save) { - unsigned long *flag = buf + sizeof(jmp_buf)/sizeof(long); - sigset_t *mask = (void *)(flag + 1); - if ((*flag = save)) - sigprocmask (SIG_SETMASK, NULL, mask); - return setjmp((void *)buf); + if ((buf->__fl = save)) + pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss); + return setjmp(buf->__jb); }