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 [BZ #1158] 2005-09-28 00:14:50 +00:00
bug-atexit1.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
bug-atexit2-lib.c [BZ #1158] 2005-09-28 00:14:50 +00:00
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 * dlfcn/Makefile: Add rules to build and run bug-atexit3. 2006-07-27 01:31:43 +00:00
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 Update. 2002-02-06 00:28:46 +00:00
bug-dlsym1-lib1.c (foo): Add prototype to avoid warning. 2002-08-23 08:52:49 +00:00
bug-dlsym1-lib2.c 2002-08-21 Roland McGrath <roland@redhat.com> 2002-08-21 23:03:46 +00:00
bug-dlsym1.c 2004-10-18 Roland McGrath <roland@redhat.com> 2004-10-18 18:53:53 +00:00
default.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
defaultmod1.c Update. 2003-08-15 03:58:56 +00:00
defaultmod2.c Update. 2003-08-15 03:58:56 +00:00
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 Add prototype for foo. 2000-12-27 19:58:36 +00:00
failtestmod.c Fix dlfcn/failtestmod.c warning. 2014-11-27 16:00:08 +00:00
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 [BZ #4775, BZ #4776] 2007-07-12 18:17:11 +00:00
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 Fix recursive dlopen. 2015-01-21 01:51:10 -05:00
moddummy2.c Fix recursive dlopen. 2015-01-21 01:51:10 -05:00
modstatic2.c Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
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 Update. 2001-12-28 16:43:13 +00:00
sdladdr1.c Update. 2004-10-18 23:17:46 +00:00
sdladdr.c Update. 2004-10-18 23:17:46 +00:00
sdlclose.c Update. 2004-10-18 23:17:46 +00:00
sdlerror.c Update. 2004-10-18 23:17:46 +00:00
sdlfreeres.c libc: Extend __libc_freeres framework (Bug 23329). 2018-06-29 22:39:06 -04:00
sdlinfo.c Update. 2004-10-18 23:17:46 +00:00
sdlmopen.c Update. 2004-10-18 23:17:46 +00:00
sdlopen.c Update. 2004-10-18 23:17:46 +00:00
sdlsym.c Update. 2004-10-18 23:17:46 +00:00
sdlvsym.c Update. 2004-10-18 23:17:46 +00:00
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 Convert dlfcn/tststatic2 to use test-skeleton. 2015-02-27 15:54:33 -08:00
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 Convert dlfcn/tststatic to use test-skeleton. 2015-03-27 12:55:25 -07:00
Versions libc: Extend __libc_freeres framework (Bug 23329). 2018-06-29 22:39:06 -04:00