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