Message ID | gerrit.1572549639000.I995a6cfb89f25d2b0cf5e606428c2a93eb48fc33@gnutoolchain-gerrit.osci.io |
---|---|
State | New |
Headers | show |
Series | [review] Move _dl_open_check to its original place in dl_open_worker | expand |
Florian Weimer has posted comments on this change. Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/473 ...................................................................... Patch Set 2: This change is ready for review.
Carlos O'Donell has posted comments on this change.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/glibc/+/473
......................................................................
Patch Set 3: Code-Review+2
(2 comments)
When we correctly remove NODELETE objects we can call _dl_open_check early.
OK for master.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
| --- elf/dl-open.c
| +++ elf/dl-open.c
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);