From 5e0889da396b35ef7d57d43dca6f09899e4c8d66 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 10 Sep 1998 17:40:29 +0000 Subject: Update. 1998-09-02 Andreas Jaeger * manual/locale.texi: Fix typos. --- linuxthreads/signals.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'linuxthreads/signals.c') diff --git a/linuxthreads/signals.c b/linuxthreads/signals.c index a6674bf..5444ef7 100644 --- a/linuxthreads/signals.c +++ b/linuxthreads/signals.c @@ -102,7 +102,8 @@ int sigaction(int sig, const struct sigaction * act, if (act) { newact = *act; - if (act->sa_handler != SIG_IGN && act->sa_handler != SIG_DFL) + if (act->sa_handler != SIG_IGN && act->sa_handler != SIG_DFL + && sig < NSIG) newact.sa_handler = pthread_sighandler; newactp = &newact; } @@ -110,9 +111,13 @@ int sigaction(int sig, const struct sigaction * act, newactp = NULL; if (__sigaction(sig, newactp, oact) == -1) return -1; - if (oact != NULL) oact->sa_handler = sighandler[sig]; - if (act) - sighandler[sig] = act->sa_handler; + if (sig < NSIG) + { + if (oact != NULL) + oact->sa_handler = sighandler[sig]; + if (act) + sighandler[sig] = act->sa_handler; + } return 0; } -- cgit v1.1