From e37c2cf299b61ce18f62852f6c5624c27829b610 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 31 Oct 2019 18:48:43 +0100 Subject: Move _dl_open_check to its original place in dl_open_worker This reverts the non-test change from commit d0093c5cefb7f7a4143f ("Call _dl_open_check after relocation [BZ #24259]"), given that the underlying bug has been fixed properly in commit 61b74477fa7f63 ("Remove all loaded objects if dlopen fails, ignoring NODELETE [BZ #20839]"). Tested on x86-64-linux-gnu, with and without --enable-cet. Change-Id: I995a6cfb89f25d2b0cf5e606428c2a93eb48fc33 --- elf/dl-open.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/elf/dl-open.c b/elf/dl-open.c index 1051e22971..df9f29a5e5 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -622,6 +622,8 @@ dl_open_worker (void *a) _dl_debug_state (); LIBC_PROBE (map_complete, 3, args->nsid, r, new); + _dl_open_check (new); + /* Print scope information. */ if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) _dl_show_scope (new, 0); @@ -702,12 +704,6 @@ dl_open_worker (void *a) _dl_relocate_object (l, l->l_scope, reloc_mode, 0); } - /* NB: Workaround for [BZ #20839] which doesn't remove the NODELETE - object when _dl_open_check throws an exception. Move it after - relocation to avoid leaving the NODELETE object mapped without - relocation. */ - _dl_open_check (new); - /* This only performs the memory allocations. The actual update of the scopes happens below, after failure is impossible. */ resize_scopes (new); -- cgit 1.4.1