diff options
Diffstat (limited to 'signal.c')
| -rw-r--r-- | signal.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -15,8 +15,9 @@ void (*sys_signal(int signum, void (*handler)(int)))(int) { new.sa_handler = handler; new.sa_flags = 0; /* clear SA_RESTART */ sigfillset(&new.sa_mask); - sigaction(signum, &new, &old); - return old.sa_handler; + if (sigaction(signum, &new, &old) == 0) + return old.sa_handler; + return SIG_DFL; } #else void (*sys_signal(int signum, void (*handler)(int)))(int) { |