This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[review] Move _dl_open_check to its original place in dl_open_worker

Change URL:

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
M elf/dl-open.c
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/elf/dl-open.c b/elf/dl-open.c
index 7322c5d..126cf9c 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -605,6 +605,8 @@
   _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);
@@ -685,12 +687,6 @@
 	_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);

Gerrit-Project: glibc
Gerrit-Branch: master
Gerrit-Change-Id: I995a6cfb89f25d2b0cf5e606428c2a93eb48fc33
Gerrit-Change-Number: 473
Gerrit-PatchSet: 1
Gerrit-Owner: Florian Weimer <>
Gerrit-MessageType: newchange

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]