X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsignal%2Fsigaltstack.c;h=d3a6e8215f83c3d0a8038a6d0eee2bc228b104e5;hb=29e4319178cbc2a4e9f058a99ae8098d4b6ac055;hp=6e46d098e43b02c1d7a68575620c6a3018eca682;hpb=6871fd773dcedbf056317d5d5e87b4859e97c4a4;p=musl diff --git a/src/signal/sigaltstack.c b/src/signal/sigaltstack.c index 6e46d098..d3a6e821 100644 --- a/src/signal/sigaltstack.c +++ b/src/signal/sigaltstack.c @@ -2,17 +2,17 @@ #include #include "syscall.h" -int sigaltstack(const stack_t *ss, stack_t *old) +int sigaltstack(const stack_t *restrict ss, stack_t *restrict old) { if (ss) { - if (ss->ss_size < MINSIGSTKSZ) { + if (!(ss->ss_flags & SS_DISABLE) && ss->ss_size < MINSIGSTKSZ) { errno = ENOMEM; return -1; } - if (ss->ss_flags & ~SS_DISABLE) { + if (ss->ss_flags & SS_ONSTACK) { errno = EINVAL; return -1; } } - return syscall2(__NR_sigaltstack, (long)ss, (long)old); + return syscall(SYS_sigaltstack, ss, old); }