diff mbox series

[RFC,v4,06/15] elf/dl-init.c: Skip proxied link map entries in the dl init path

Message ID cda85c3d07bd837df2b56c41b0b0726776c005a1.1585588166.git.vivek@collabora.com
State New
Headers show
Series Proof-of-Concept implementation of RTLD_SHARED for dlmopen | expand

Commit Message

develop--- via Libc-alpha March 30, 2020, 5:43 p.m. UTC
Proxies should not trigger calls to DT_INIT constructors since they're
just shims that point to the real, already loaded and initialised, objects.
---
 elf/dl-init.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/elf/dl-init.c b/elf/dl-init.c
index 55d528c7a5..2eef584cf9 100644
--- a/elf/dl-init.c
+++ b/elf/dl-init.c
@@ -27,8 +27,8 @@  typedef void (*init_t) (int, char **, char **);
 static void
 call_init (struct link_map *l, int argc, char **argv, char **env)
 {
-  if (l->l_init_called)
-    /* This object is all done.  */
+  if (l->l_init_called || l->l_proxy)
+    /* This object is all done, or a proxy (and therefore initless).  */
     return;
 
   /* Avoid handling this constructor again in case we have a circular