This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[pushed] Move _dl_open_check to its original place in dl_open_worker
- From: "Sourceware to Gerrit sync (Code Review)" <gerrit at gnutoolchain-gerrit dot osci dot io>
- To: Florian Weimer <fweimer at redhat dot com>, libc-alpha at sourceware dot org
- Cc: Carlos O'Donell <carlos at redhat dot com>
- Date: Wed, 27 Nov 2019 15:30:50 -0500
- Subject: [pushed] Move _dl_open_check to its original place in dl_open_worker
- Auto-submitted: auto-generated
- References: <gerrit.1572549639000.I995a6cfb89f25d2b0cf5e606428c2a93eb48fc33@gnutoolchain-gerrit.osci.io>
- Reply-to: noreply at gnutoolchain-gerrit dot osci dot io, fweimer at redhat dot com, libc-alpha at sourceware dot org, carlos at redhat dot com
Sourceware to Gerrit sync has submitted this change.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/473
......................................................................
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(-)
Approvals:
Carlos O'Donell: Looks good to me, approved
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 1051e22..df9f29a 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -622,6 +622,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);
@@ -702,12 +704,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: 6
Gerrit-Owner: Florian Weimer <fweimer@redhat.com>
Gerrit-Reviewer: Carlos O'Donell <carlos@redhat.com>
Gerrit-Reviewer: Florian Weimer <fweimer@redhat.com>
Gerrit-MessageType: merged