[1/4] elf: Remove struct dl_init_args from elf/dl-open.c

Message ID 76d7cf4b4b2dd3f738df688429f547502c696b6c.1723024001.git.fweimer@redhat.com
State Committed
Commit 2d14f72c9abf188f4e25462b99024798b5acb5ec
Headers
Series Fixes for recursive dlopen (bug 31986) |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 success Test passed
linaro-tcwg-bot/tcwg_glibc_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_glibc_check--master-arm fail Patch failed to apply

Commit Message

Florian Weimer Aug. 7, 2024, 9:54 a.m. UTC
  It is completely redundant with struct dl_open_args.
---
 elf/dl-open.c | 26 +++-----------------------
 1 file changed, 3 insertions(+), 23 deletions(-)
  

Comments

Andreas Schwab Aug. 7, 2024, 10:44 a.m. UTC | #1
On Aug 07 2024, Florian Weimer wrote:

> It is completely redundant with struct dl_open_args.

Ok.
  

Patch

diff --git a/elf/dl-open.c b/elf/dl-open.c
index 8556e7bd2f..8b4704c09d 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -486,22 +486,11 @@  _dl_open_relocate_one_object (struct dl_open_args *args, struct r_debug *r,
     _dl_relocate_object (l, l->l_scope, reloc_mode, 0);
 }
 
-
-/* struct dl_init_args and call_dl_init are used to call _dl_init with
-   exception handling disabled.  */
-struct dl_init_args
-{
-  struct link_map *new;
-  int argc;
-  char **argv;
-  char **env;
-};
-
 static void
 call_dl_init (void *closure)
 {
-  struct dl_init_args *args = closure;
-  _dl_init (args->new, args->argc, args->argv, args->env);
+  struct dl_open_args *args = closure;
+  _dl_init (args->map, args->argc, args->argv, args->env);
 }
 
 static void
@@ -793,16 +782,7 @@  dl_open_worker (void *a)
   /* Run the initializer functions of new objects.  Temporarily
      disable the exception handler, so that lazy binding failures are
      fatal.  */
-  {
-    struct dl_init_args init_args =
-      {
-        .new = new,
-        .argc = args->argc,
-        .argv = args->argv,
-        .env = args->env
-      };
-    _dl_catch_exception (NULL, call_dl_init, &init_args);
-  }
+  _dl_catch_exception (NULL, call_dl_init, args);
 
   /* Now we can make the new map available in the global scope.  */
   if (mode & RTLD_GLOBAL)