unixsig: check for NULL altstack in drop_signals() #2842

This commit is contained in:
nick black 2025-01-14 13:59:08 -05:00
parent fa7dbdc7f3
commit bbb6781ca1
No known key found for this signature in database
GPG Key ID: 5F43400C21CBFACC

View File

@ -19,7 +19,9 @@ int unblock_signals(const sigset_t* old_blocked_signals){
int drop_signals(void* nc, void** altstack){
void* expected = nc;
*altstack = NULL;
if(!altstack){
return 0;
}
if(!atomic_compare_exchange_strong(&signal_nc, &expected, NULL)){
return -1;
}
@ -100,6 +102,9 @@ int unblock_signals(const sigset_t* old_blocked_signals){
int drop_signals(void* nc, void** altstack){
int ret = -1;
void* expected = nc;
if(!altstack){ // came in via signal handler
return 0;
}
*altstack = NULL;
pthread_mutex_lock(&lock);
if(atomic_compare_exchange_strong(&signal_nc, &expected, nc)){