aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-audit.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-audit.c')
-rw-r--r--elf/dl-audit.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/elf/dl-audit.c b/elf/dl-audit.c
index 4066dfe..74b87f4 100644
--- a/elf/dl-audit.c
+++ b/elf/dl-audit.c
@@ -19,6 +19,32 @@
#include <ldsodefs.h>
void
+_dl_audit_activity_map (struct link_map *l, int action)
+{
+ struct audit_ifaces *afct = GLRO(dl_audit);
+ for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt)
+ {
+ if (afct->activity != NULL)
+ afct->activity (&link_map_audit_state (l, cnt)->cookie, action);
+ afct = afct->next;
+ }
+}
+
+void
+_dl_audit_activity_nsid (Lmid_t nsid, int action)
+{
+ /* If head is NULL, the namespace has become empty, and the audit interface
+ does not give us a way to signal LA_ACT_CONSISTENT for it because the
+ first loaded module is used to identify the namespace. */
+ struct link_map *head = GL(dl_ns)[nsid]._ns_loaded;
+ if (__glibc_likely (GLRO(dl_naudit) == 0)
+ || head == NULL || head->l_auditing)
+ return;
+
+ _dl_audit_activity_map (head, action);
+}
+
+void
_dl_audit_objopen (struct link_map *l, Lmid_t nsid)
{
if (__glibc_likely (GLRO(dl_naudit) == 0))