From 724d132f7de291fecc65819891aa44e07abdc410 Mon Sep 17 00:00:00 2001 From: Robert Spalek Date: Thu, 24 Jun 2004 12:37:16 +0000 Subject: [PATCH] added unhandle_signal() into sighandler.c --- lib/lib.h | 1 + lib/lizard-safe.c | 2 +- lib/sighandler.c | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/lib.h b/lib/lib.h index 99ee39cc..c58d83da 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -215,5 +215,6 @@ extern sh_sighandler_t signal_handler[]; struct sigaction; void handle_signal(int signum, struct sigaction *oldact); +void unhandle_signal(int signum, struct sigaction *oldact); #endif diff --git a/lib/lizard-safe.c b/lib/lizard-safe.c index e265e96a..10a755ac 100644 --- a/lib/lizard-safe.c +++ b/lib/lizard-safe.c @@ -37,7 +37,7 @@ void lizard_free(struct lizard_buffer *buf) { munmap(buf->start, buf->len + PAGE_SIZE); - sigaction(SIGSEGV, buf->old_sigsegv_handler, NULL); + unhandle_signal(SIGSEGV, buf->old_sigsegv_handler); xfree(buf->old_sigsegv_handler); xfree(buf); } diff --git a/lib/sighandler.c b/lib/sighandler.c index 3b9dfa0c..406606bb 100644 --- a/lib/sighandler.c +++ b/lib/sighandler.c @@ -32,3 +32,10 @@ handle_signal(int signum, struct sigaction *oldact) if (sigaction(signum, &act, oldact) < 0) die("sigaction: %m"); } + +void +unhandle_signal(int signum, struct sigaction *oldact) +{ + if (sigaction(signum, oldact, NULL) < 0) + die("sigaction: %m"); +} -- 2.39.2