aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2021-07-29 23:24:58 -0400
committerRich Felker <dalias@aerifal.cx>2021-07-29 23:24:58 -0400
commit3f701faace7addc75d16dea8a6cd769fa5b3f260 (patch)
tree74f78ed6b69430ed3ca78f75eaf6ffdff6a67415
parent0fbd7d6683d04dcaa636df53e7fce69ece746241 (diff)
downloadmusl-master.tar.gz
musl-master.tar.xz
musl-master.zip
fix libc-internal signal blocking on mips archsHEADmaster
due to historical reasons, the mips signal set has 128 bits rather than 64 like on every other arch. this was special-cased correctly, at least for 32-bit mips, at one time, but was inadvertently broken in commit 7c440977db9444d7e6b1c3dcb1fdf4ee49ca4158, and seems never to have been right on mips64/n32. as consequenct of this bug, applications making use of high realtime signal numbers on mips may have been able to execute application code in contexts where doing so was unsafe.
-rw-r--r--src/signal/block.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/signal/block.c b/src/signal/block.c
index d7f61001..cc8698f0 100644
--- a/src/signal/block.c
+++ b/src/signal/block.c
@@ -3,9 +3,9 @@
#include <signal.h>
static const unsigned long all_mask[] = {
-#if ULONG_MAX == 0xffffffff && _NSIG == 129
+#if ULONG_MAX == 0xffffffff && _NSIG > 65
-1UL, -1UL, -1UL, -1UL
-#elif ULONG_MAX == 0xffffffff
+#elif ULONG_MAX == 0xffffffff || _NSIG > 65
-1UL, -1UL
#else
-1UL