diff options
Diffstat (limited to 'source3/lib/signal.c')
-rw-r--r-- | source3/lib/signal.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/source3/lib/signal.c b/source3/lib/signal.c index dceb3b53bc..99f908235c 100644 --- a/source3/lib/signal.c +++ b/source3/lib/signal.c @@ -96,11 +96,10 @@ void BlockSignals(BOOL block,int signum) 2) The signal should be blocked during handler execution. ********************************************************************/ -void (*CatchSignal(int signum,void (*handler)(int )))(int) +void CatchSignal(int signum,void (*handler)(int )) { #ifdef HAVE_SIGACTION struct sigaction act; - struct sigaction oldact; ZERO_STRUCT(act); @@ -114,11 +113,10 @@ void (*CatchSignal(int signum,void (*handler)(int )))(int) #endif sigemptyset(&act.sa_mask); sigaddset(&act.sa_mask,signum); - sigaction(signum,&act,&oldact); - return oldact.sa_handler; + sigaction(signum,&act,NULL); #else /* !HAVE_SIGACTION */ /* FIXME: need to handle sigvec and systems with broken signal() */ - return signal(signum, handler); + signal(signum, handler); #endif } |