diff options
| author | Rich Felker <dalias@aerifal.cx> | 2013-09-16 12:58:51 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2013-09-16 12:58:51 -0400 | 
| commit | 0753b1faf002249dc35ef09cb4769d66fa3a1a86 (patch) | |
| tree | b59539f1296b74d866893fca6a3a013d2c762605 | |
| parent | cffb9e1ee2a5e8925845f0c9b79cb6c80487302c (diff) | |
| download | musl-0753b1faf002249dc35ef09cb4769d66fa3a1a86.tar.gz | |
fix sigemptyset and sigfillset for mips
they were leaving junk in the upper bits.
| -rw-r--r-- | src/signal/sigemptyset.c | 6 | ||||
| -rw-r--r-- | src/signal/sigfillset.c | 5 | 
2 files changed, 10 insertions, 1 deletions
| diff --git a/src/signal/sigemptyset.c b/src/signal/sigemptyset.c index ca9b8920..1d07471d 100644 --- a/src/signal/sigemptyset.c +++ b/src/signal/sigemptyset.c @@ -4,6 +4,10 @@  int sigemptyset(sigset_t *set)  {  	set->__bits[0] = 0; -	if (sizeof(long)==4) set->__bits[1] = 0; +	if (sizeof(long)==4 || _NSIG > 65) set->__bits[1] = 0; +	if (sizeof(long)==4 && _NSIG > 65) { +		set->__bits[2] = 0; +		set->__bits[3] = 0; +	}  	return 0;  } diff --git a/src/signal/sigfillset.c b/src/signal/sigfillset.c index 6c84b9b7..4d0a807a 100644 --- a/src/signal/sigfillset.c +++ b/src/signal/sigfillset.c @@ -7,8 +7,13 @@ int sigfillset(sigset_t *set)  #if ULONG_MAX == 0xffffffff  	set->__bits[0] = 0x7ffffffful;  	set->__bits[1] = 0xfffffffcul; +	if (_NSIG > 65) { +		set->__bits[2] = 0xfffffffful; +		set->__bits[3] = 0xfffffffful; +	}  #else  	set->__bits[0] = 0xfffffffc7ffffffful; +	if (_NSIG > 65) set->__bits[1] = 0xfffffffffffffffful;  #endif  	return 0;  } | 
