diff options
author | Florian Weimer <fweimer@redhat.com> | 2019-10-17 11:20:39 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2019-10-17 11:20:39 +0200 |
commit | 7f1de8894be40772b9240563ea66c702014a1f96 (patch) | |
tree | bac7b8602e0443b68ba698eac09ce5fd1133282f /sysdeps/tile | |
parent | 7d3db434f910c23591f748a6d0ac3548af1048bb (diff) | |
download | glibc-7f1de8894be40772b9240563ea66c702014a1f96.tar glibc-7f1de8894be40772b9240563ea66c702014a1f96.tar.gz glibc-7f1de8894be40772b9240563ea66c702014a1f96.tar.bz2 glibc-7f1de8894be40772b9240563ea66c702014a1f96.zip |
Lazy binding failures during dlopen/dlclose must be fatal [BZ #24304]
If a lazy binding failure happens during the execution of an ELF
constructor or destructor, the dynamic loader catches the error
and reports it using the dlerror mechanism. This is undesirable
because there could be other constructors and destructors that
need processing (which are skipped), and the process is in an
inconsistent state at this point. Therefore, we have to issue
a fatal dynamic loader error error and terminate the process.
To temporarily disable exception handling (turning exceptions
into fatal errors), _dl_catch_exception is changed to accept
a null exception argument, which indicates that it should call
the operate function with exception handling disabled.
_dl_fini does not need changes because it does not install an error
handler, so errors are already fatal there.
Tested on x86_64-linux-gnu and i686-linux-gnu.
Diffstat (limited to 'sysdeps/tile')
0 files changed, 0 insertions, 0 deletions