diff --git a/signal.c b/signal.c index 4371b703..a8db58ba 100644 --- a/signal.c +++ b/signal.c @@ -186,12 +186,14 @@ _evsignal_set_handler(struct event_base *base, if (sigaction(evsignal, &sa, sig->sh_old[evsignal]) == -1) { event_warn("sigaction"); free(sig->sh_old[evsignal]); + sig->sh_old[evsignal] = NULL; return (-1); } #else if ((sh = signal(evsignal, handler)) == SIG_ERR) { event_warn("signal"); free(sig->sh_old[evsignal]); + sig->sh_old[evsignal] = NULL; return (-1); } *sig->sh_old[evsignal] = sh;