diff options
author | David Schleef <ds@ginger.bigkitten.com> | 2008-03-13 15:48:22 -0700 |
---|---|---|
committer | David Schleef <ds@ginger.bigkitten.com> | 2008-03-13 15:48:22 -0700 |
commit | 7210cdc46b335c6812f04272d074f8359fab77d5 (patch) | |
tree | b5562862b6fb9626fb2d9c90ceb41121c429204c /liboil | |
parent | 3a7f182e9eeee911dc8a6256d69a4d8fdd0431f5 (diff) |
Unmask SIGILL if we catch it. Change back to setjmp/longjmp instead of sigsetjmp/siglongjmp, since it doesn't do what we want.
Diffstat (limited to 'liboil')
-rw-r--r-- | liboil/liboilfault.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/liboil/liboilfault.c b/liboil/liboilfault.c index 8876a90..de0b66a 100644 --- a/liboil/liboilfault.c +++ b/liboil/liboilfault.c @@ -28,15 +28,13 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif + #include <liboil/liboilfunction.h> #include <liboil/liboildebug.h> #include <liboil/liboilfault.h> -//#include <unistd.h> -//#include <fcntl.h> #include <stdlib.h> #include <string.h> -//#include <stdio.h> #include <setjmp.h> #include <signal.h> @@ -55,20 +53,11 @@ static void illegal_instruction_handler (int num) { if (in_try_block) { -#ifdef HAVE_SIGSETJMP -#if 0 - /* alternate method of siglongjmp() */ sigset_t set; sigemptyset (&set); sigaddset (&set, SIGILL); sigprocmask (SIG_UNBLOCK, &set, NULL); longjmp (jump_env, 1); -#else - siglongjmp (jump_env, 1); -#endif -#else - longjmp (jump_env, 1); -#endif } else { abort (); } @@ -122,11 +111,7 @@ oil_fault_check_try (void (*func) (void *), void *priv) int ret; in_try_block = 1; -#ifdef HAVE_SIGSETJMP - ret = sigsetjmp (jump_env, 1); -#else ret = setjmp (jump_env); -#endif if (!ret) { func (priv); } |