[glibc/azanella/memory-seal-v5] elf: Use RTLD_NODELETE for dependencies

Adhemerval Zanella azanella@sourceware.org
Thu Jan 30 15:00:55 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=096e962c1d20fd083f312fdb6674aba21733a68a

commit 096e962c1d20fd083f312fdb6674aba21733a68a
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Jan 29 14:22:39 2025 -0300

    elf: Use RTLD_NODELETE for dependencies
    
    So dlopen dependencies for objects opened with RTLD_NODELETE
    are also marked with RTLD_NODELETE.
    
    Checked on x86_64-linux-gnu.

Diff:
---
 elf/dl-open.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/elf/dl-open.c b/elf/dl-open.c
index 4c12ddec59..1501428de2 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -604,7 +604,8 @@ dl_open_worker_begin (void *a)
 
   /* Load that object's dependencies.  */
   _dl_map_object_deps (new, NULL, 0, 0,
-		       mode & (__RTLD_DLOPEN | RTLD_DEEPBIND | __RTLD_AUDIT));
+		       mode & (__RTLD_DLOPEN | RTLD_DEEPBIND | __RTLD_AUDIT
+			       | RTLD_NODELETE));
 
   /* So far, so good.  Now check the versions.  */
   for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)


More information about the Glibc-cvs mailing list