diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-01-06 22:07:28 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-01-06 22:07:28 +0000 |
commit | df4ef2ab9c0899b2670067cd97e58f7eb2913e00 (patch) | |
tree | 4cb343b5ba9ccdc9c0b96144412567b6a4eda0ee /elf/dl-error.c | |
parent | 6f9e7002f38ae778b3ff2f586a3e5766382228e9 (diff) | |
download | glibc-df4ef2ab9c0899b2670067cd97e58f7eb2913e00.tar.gz glibc-df4ef2ab9c0899b2670067cd97e58f7eb2913e00.tar.xz glibc-df4ef2ab9c0899b2670067cd97e58f7eb2913e00.zip |
update from main archive 960105 cvs/libc-970107 cvs/libc-970106
Diffstat (limited to 'elf/dl-error.c')
-rw-r--r-- | elf/dl-error.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/elf/dl-error.c b/elf/dl-error.c index 55d9c2fc93..52eb577eb0 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -1,5 +1,5 @@ /* Error handling for runtime dynamic linker. - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -76,21 +76,22 @@ _dl_catch_error (char **errstring, void (*operate) (void)) { int errcode; - struct catch c = { errstring: NULL, objname: NULL }; + struct catch *old, c = { errstring: NULL, objname: NULL }; + old = catch; errcode = setjmp (c.env); if (errcode == 0) { catch = &c; (*operate) (); - catch = NULL; + catch = old; *errstring = NULL; *objname = NULL; return 0; } /* We get here only if we longjmp'd out of OPERATE. */ - catch = NULL; + catch = old; *errstring = c.errstring; *objname = c.objname; return errcode == -1 ? 0 : errcode; |