]> mj.ucw.cz Git - libucw.git/commitdiff
avoid one pointer
authorRobert Spalek <robert@ucw.cz>
Mon, 28 Jun 2004 12:04:22 +0000 (12:04 +0000)
committerRobert Spalek <robert@ucw.cz>
Mon, 28 Jun 2004 12:04:22 +0000 (12:04 +0000)
lib/lizard-safe.c

index dcc01d11f59a6a69528eac1fd75f86f867230d35..9c347bd2d8f1d6f2bf7511f14849850f1325b679 100644 (file)
@@ -21,7 +21,7 @@
 struct lizard_buffer {
   uns len;
   void *ptr;
-  struct sigaction *old_sigsegv_handler;
+  struct sigaction old_sigsegv_handler;
 };
 
 struct lizard_buffer *
@@ -30,8 +30,7 @@ lizard_alloc(void)
   struct lizard_buffer *buf = xmalloc(sizeof(struct lizard_buffer));
   buf->len = 0;
   buf->ptr = NULL;
-  buf->old_sigsegv_handler = xmalloc(sizeof(struct sigaction));
-  handle_signal(SIGSEGV, buf->old_sigsegv_handler);
+  handle_signal(SIGSEGV, &buf->old_sigsegv_handler);
   return buf;
 }
 
@@ -40,8 +39,7 @@ lizard_free(struct lizard_buffer *buf)
 {
   if (buf->ptr)
     munmap(buf->ptr, buf->len + PAGE_SIZE);
-  unhandle_signal(SIGSEGV, buf->old_sigsegv_handler);
-  xfree(buf->old_sigsegv_handler);
+  unhandle_signal(SIGSEGV, &buf->old_sigsegv_handler);
   xfree(buf);
 }