]> mj.ucw.cz Git - libucw.git/commitdiff
added unhandle_signal() into sighandler.c
authorRobert Spalek <robert@ucw.cz>
Thu, 24 Jun 2004 12:37:16 +0000 (12:37 +0000)
committerRobert Spalek <robert@ucw.cz>
Thu, 24 Jun 2004 12:37:16 +0000 (12:37 +0000)
lib/lib.h
lib/lizard-safe.c
lib/sighandler.c

index 99ee39ccdf64cd94b4c04b78addc03344197d0f0..c58d83da573283fa5385a6a4dab61123bc789be9 100644 (file)
--- 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
index e265e96a7f647169facb7aebff3632c8efa1a5cd..10a755ac54a6aed5114087a0cdae91c6f42a1a7b 100644 (file)
@@ -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);
 }
index 3b9dfa0cff7d4792637863480ec9251a651d1a7e..406606bb295ee820548cbe3dddb7479774f6b278 100644 (file)
@@ -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");
+}