This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
A bug in the dynamic linker
- To: GNU C Library <libc-alpha at sourceware dot cygnus dot com>
- Subject: A bug in the dynamic linker
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Fri, 22 Jun 2001 15:28:58 -0700
_dl_catch_error has
/* We get here only if we longjmp'd out of OPERATE. */
tsd_setspecific (old);
*objname = c.objname;
*errstring = c.errstring;
return errcode == -1 ? 0 : errcode;
_dl_signal_error will set the env fieldd to -1 if errcode == 0. In
that case, _dl_catch_error will return 0. That means the error will be
ignore and the dynamic linker may dump core. Now the question is if
_dl_signal_error should be called with errcode == 0 inside of
_dl_catch_error. The one case is lose () in dl-load.c. It may call
_dl_signal_error with errcode == 0 inside of _dl_catch_error.
H.J.