glibc/dlfcn
Florian Weimer b2964eb1d9 dlfcn: Failures after dlmopen should not terminate process [BZ #24772]
Commit 9e78f6f6e7 ("Implement
_dl_catch_error, _dl_signal_error in libc.so [BZ #16628]") has the
side effect that distinct namespaces, as created by dlmopen, now have
separate implementations of the rtld exception mechanism.  This means
that the call to _dl_catch_error from libdl in a secondary namespace
does not actually install an exception handler because the
thread-local variable catch_hook in the libc.so copy in the secondary
namespace is distinct from that of the base namepace.  As a result, a
dlsym/dlopen/... failure in a secondary namespace terminates the process
with a dynamic linker error because it looks to the exception handler
mechanism as if no handler has been installed.

This commit restores GLRO (dl_catch_error) and uses it to set the
handler in the base namespace.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-04-21 19:49:51 +02:00
..
bug-atexit1-lib.c
bug-atexit1.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
bug-atexit2-lib.c
bug-atexit2.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
bug-atexit3-lib.cc support: Introduce new subdirectory for test infrastructure 2016-12-09 08:18:27 +01:00
bug-atexit3.c
bug-dl-leaf-lib-cb.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
bug-dl-leaf-lib.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
bug-dl-leaf.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
bug-dlopen1.c
bug-dlsym1-lib1.c
bug-dlsym1-lib2.c
bug-dlsym1.c
default.c
defaultmod1.c
defaultmod2.c
dladdr1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dladdr.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlclose.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlerror.c dlfcn: Failures after dlmopen should not terminate process [BZ #24772] 2021-04-21 19:49:51 +02:00
dlfcn.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlfcn.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlfreeres.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlmopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlopenold.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlsym.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
dlvsym.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
errmsg1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
errmsg1mod.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
failtest.c
failtestmod.c
glreflib1.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
glreflib2.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
glreflib3.c
glrefmain.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
Makefile Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modcxaatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
moddummy1.c
moddummy2.c
modstatic2.c
modstatic3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modstatic5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
modstatic.c
sdladdr1.c
sdladdr.c
sdlclose.c
sdlerror.c
sdlfreeres.c libc: Extend __libc_freeres framework (Bug 23329). 2018-06-29 22:39:06 -04:00
sdlinfo.c
sdlmopen.c
sdlopen.c
sdlsym.c
sdlvsym.c
tst-dladdr.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-dlinfo.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tst-rec-dlopen.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tstatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tstcxaatexit.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic2.c
tststatic3.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic4.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic5.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
tststatic.c
Versions libc: Extend __libc_freeres framework (Bug 23329). 2018-06-29 22:39:06 -04:00