A bug in the dynamic linker
H . J . Lu
hjl@lucon.org
Fri Jun 22 15:29:00 GMT 2001
_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.
More information about the Libc-alpha
mailing list