about summary refs log tree commit diff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2023-03-23 16:46:20 +0100
committerAndreas Schwab <schwab@suse.de>2023-05-09 14:36:34 +0200
commitab5aa2ee3d3f978e474803cbbc5fe805ad30e293 (patch)
treefe778d97394e5ab8c89904492d2e34e167177bec /elf/dl-load.c
parentd1417176a35d27ffb8da0ffb1e33154163b6eeb2 (diff)
downloadglibc-ab5aa2ee3d3f978e474803cbbc5fe805ad30e293.tar.gz
glibc-ab5aa2ee3d3f978e474803cbbc5fe805ad30e293.tar.xz
glibc-ab5aa2ee3d3f978e474803cbbc5fe805ad30e293.zip
dlopen: skip debugger notification for DSO loaded from sprof (bug 30258)
Avoid inconsistent state in the debugger interface.
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 9a0e40c0e9..39c63ff1b3 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1483,6 +1483,10 @@ cannot enable executable stack as shared object requires");
   /* Now that the object is fully initialized add it to the object list.  */
   _dl_add_to_namespace_list (l, nsid);
 
+  /* Skip auditing and debugger notification when called from 'sprof'.  */
+  if (mode & __RTLD_SPROF)
+    return l;
+
   /* Signal that we are going to add new objects.  */
   struct r_debug *r = _dl_debug_update (nsid);
   if (r->r_state == RT_CONSISTENT)