LibC: Fix `signal` return value

signal was returning `func` when it should've returned the old handler
This commit is contained in:
Bananymous 2025-05-29 00:58:30 +03:00
parent 7691b019e2
commit 69c4940b27
1 changed files with 3 additions and 3 deletions

View File

@ -121,14 +121,14 @@ int sigismember(const sigset_t* set, int signo)
void (*signal(int sig, void (*func)(int)))(int) void (*signal(int sig, void (*func)(int)))(int)
{ {
struct sigaction act; struct sigaction act, oact;
act.sa_handler = func; act.sa_handler = func;
act.sa_flags = 0; act.sa_flags = 0;
int ret = sigaction(sig, &act, nullptr); int ret = sigaction(sig, &act, &oact);
if (ret == -1) if (ret == -1)
return SIG_ERR; return SIG_ERR;
return func; return oact.sa_handler;
} }
int sigpending(sigset_t* set) int sigpending(sigset_t* set)