mirror of
https://git.musl-libc.org/git/musl
synced 2025-02-24 14:14:35 +03:00
change sigset_t functions to restrict to _NSIG
the idea here is to avoid advertising signals that don't exist and to make these functions safe to call (e.g. from within other parts of the implementation) on fake sigset_t objects which do not have the HURD padding.
This commit is contained in:
parent
3c5c5e6f92
commit
76fbf6ad4b
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user