From 59875d55a249d9a336d115e2a65fbc62161f9679 Mon Sep 17 00:00:00 2001 From: Quentin Armitage Date: Mon, 16 Nov 2015 16:30:50 +0000 Subject: Return address of previous signal handler according to SA_SIGINFO The man page for sigaction(2) states that SA_SIGINFO is only meaningful when establishing a signal handler. This appears not to be the case, since the flag will be set in the oldact structure on return from sigaction if the previous signal handler was established using the SA_SIGINFO flag. Signed-off-by: Quentin Armitage (cherry picked from commit ee16dada7141c7412639378677f3cfb35446df15) --- lib/signals.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/signals.c b/lib/signals.c index fb22b14..68751ba 100644 --- a/lib/signals.c +++ b/lib/signals.c @@ -156,7 +156,7 @@ signal_set(int signo, void (*func) (void *, int), void *v) if (func != NULL) sigprocmask(SIG_UNBLOCK, &sset, NULL); - return (void*)osig.sa_handler; + return ((osig.sa_flags & SA_SIGINFO) ? (void*)osig.sa_sigaction : (void*)osig.sa_handler); } /* Signal Ignore */ -- 1.7.12.1