about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-12-17 23:26:28 +0000
committerUlrich Drepper <drepper@redhat.com>2005-12-17 23:26:28 +0000
commit8292f6fc71a60e92a23be053c500f504c6802c54 (patch)
tree100fe65d6ecec85d60480efdb0e5207af33a9609
parentb15cc6a1ef600e405212d045e3b681d81434065a (diff)
downloadglibc-8292f6fc71a60e92a23be053c500f504c6802c54.tar.gz
glibc-8292f6fc71a60e92a23be053c500f504c6802c54.tar.xz
glibc-8292f6fc71a60e92a23be053c500f504c6802c54.zip
* elf/dl-error.c (_dl_catch_error): Use __sigsetgjmp instead of
	setjmp.
-rw-r--r--ChangeLog2
-rw-r--r--elf/dl-error.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d61341154..b2af78c42b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2005-12-17  Ulrich Drepper  <drepper@redhat.com>
 
+	* elf/dl-error.c (_dl_catch_error): Use __sigsetgjmp instead of
+	setjmp.
 	* elf/dl-error.c (_dl_signal_error): Use __longjmp instead of longjmp.
 	* elf/dl-minimal.c (longjmp): Remove definition.
 
diff --git a/elf/dl-error.c b/elf/dl-error.c
index be9209da22..b5374e949c 100644
--- a/elf/dl-error.c
+++ b/elf/dl-error.c
@@ -170,7 +170,8 @@ _dl_catch_error (const char **objname, const char **errstring,
 
   struct catch **const catchp = &CATCH_HOOK;
   old = *catchp;
-  errcode = setjmp (c.env);
+  /* Do not save the signal mask.  */
+  errcode = __sigsetjmp (c.env, 0);
   if (__builtin_expect (errcode, 0) == 0)
     {
       *catchp = &c;