diff options
| author | Toby Goodwin <toby@paccrat.org> | 2016-08-25 22:09:42 +0100 |
|---|---|---|
| committer | Toby Goodwin <toby@paccrat.org> | 2016-08-25 22:09:42 +0100 |
| commit | cc11e3c80f687fb98dcbcd2249731f999ddb9189 (patch) | |
| tree | 86a0950b038bab71422b25eef7ec27f11b37533b /signal.c | |
| parent | 2ab8e78dfa862d4a378f766548442c24efa516cc (diff) | |
do not return random value if sigaction fails (thanks @borkovic)
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) { |