aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2019-10-31 18:48:43 +0100
committerFlorian Weimer <fweimer@redhat.com>2019-11-27 20:55:35 +0100
commite37c2cf299b61ce18f62852f6c5624c27829b610 (patch)
treecdae253238931f6f917ff7dd74c696011cf15ec1
parenta2e8aa0d9ea648068d8be52dd7b15f1b6a008e23 (diff)
downloadglibc-e37c2cf299b61ce18f62852f6c5624c27829b610.tar
glibc-e37c2cf299b61ce18f62852f6c5624c27829b610.tar.gz
glibc-e37c2cf299b61ce18f62852f6c5624c27829b610.tar.bz2
glibc-e37c2cf299b61ce18f62852f6c5624c27829b610.zip
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
-rw-r--r--elf/dl-open.c8
1 files 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);