summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/signal/sigaddset.c2
-rw-r--r--src/signal/sigdelset.c2
-rw-r--r--src/signal/sigisemptyset.c4
-rw-r--r--src/signal/sigismember.c2
4 files changed, 5 insertions, 5 deletions
diff --git a/src/signal/sigaddset.c b/src/signal/sigaddset.c
index edb48d1c..085d1f4a 100644
--- a/src/signal/sigaddset.c
+++ b/src/signal/sigaddset.c
@@ -4,7 +4,7 @@
int sigaddset(sigset_t *set, int sig)
{
unsigned s = sig-1;
- if (s >= 8*sizeof(sigset_t) || sig-32U<3) {
+ if (s >= _NSIG-1 || sig-32U < 3) {
errno = EINVAL;
return -1;
}
diff --git a/src/signal/sigdelset.c b/src/signal/sigdelset.c
index a77c638f..ce69280e 100644
--- a/src/signal/sigdelset.c
+++ b/src/signal/sigdelset.c
@@ -4,7 +4,7 @@
int sigdelset(sigset_t *set, int sig)
{
unsigned s = sig-1;
- if (s >= 8*sizeof(sigset_t) || sig-32U<3) {
+ if (s >= _NSIG-1 || sig-32U < 3) {
errno = EINVAL;
return -1;
}
diff --git a/src/signal/sigisemptyset.c b/src/signal/sigisemptyset.c
index e2410514..312c66cf 100644
--- a/src/signal/sigisemptyset.c
+++ b/src/signal/sigisemptyset.c
@@ -4,6 +4,6 @@
int sigisemptyset(const sigset_t *set)
{
- static const sigset_t zeroset;
- return !memcmp(set, &zeroset, 8);
+ static const unsigned long zeroset[_NSIG/8/sizeof(long)];
+ return !memcmp(set, &zeroset, _NSIG/8);
}
diff --git a/src/signal/sigismember.c b/src/signal/sigismember.c
index 1a22108b..dd1a8dbe 100644
--- a/src/signal/sigismember.c
+++ b/src/signal/sigismember.c
@@ -4,6 +4,6 @@
int sigismember(const sigset_t *set, int sig)
{
unsigned s = sig-1;
- if (s >= 8*sizeof(sigset_t)) return 0;
+ if (s >= _NSIG-1) return 0;
return !!(set->__bits[s/8/sizeof *set->__bits] & 1UL<<(s&8*sizeof *set->__bits-1));
}