aboutsummaryrefslogtreecommitdiff
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.zip
glibc-ab5aa2ee3d3f978e474803cbbc5fe805ad30e293.tar.gz
glibc-ab5aa2ee3d3f978e474803cbbc5fe805ad30e293.tar.bz2
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 9a0e40c..39c63ff 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)