From: Robert Spalek Date: Thu, 24 Jun 2004 12:37:16 +0000 (+0000) Subject: added unhandle_signal() into sighandler.c X-Git-Tag: holmes-import~1034 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=724d132f7de291fecc65819891aa44e07abdc410;p=libucw.git added unhandle_signal() into sighandler.c --- 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"); +}