summaryrefslogtreecommitdiffstats
path: root/man7/rtld-audit.7
diff options
context:
space:
mode:
Diffstat (limited to 'man7/rtld-audit.7')
-rw-r--r--man7/rtld-audit.742
1 files changed, 22 insertions, 20 deletions
diff --git a/man7/rtld-audit.7 b/man7/rtld-audit.7
index f0bf1c256..df04a8cd6 100644
--- a/man7/rtld-audit.7
+++ b/man7/rtld-audit.7
@@ -5,9 +5,9 @@
.\"
.\" 2009-01-12, mtk, Created
.\"
-.TH RTLD-AUDIT 7 2023-02-05 "Linux man-pages 6.03"
+.TH RTLD-AUDIT 7 2023-05-03 "Linux man-pages 6.05.01"
.SH NAME
-rtld-audit \- auditing API for the dynamic linker
+rtld\-audit \- auditing API for the dynamic linker
.SH SYNOPSIS
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
@@ -455,12 +455,14 @@ is ignored.
.\" symbol binding should return the value of the 'retval' argument
.\" (not provided by GNU, but equivalent to returning outregs->lrv_eax
.\" on (say) x86-32).
-.SH STANDARDS
-This API is nonstandard, but very similar to the Solaris API,
+.SH VERSIONS
+This API is very similar to the Solaris API
described in the Solaris
.IR "Linker and Libraries Guide" ,
in the chapter
.IR "Runtime Linker Auditing Interface" .
+.SH STANDARDS
+None.
.SH NOTES
Note the following differences from the Solaris dynamic linker
auditing API:
@@ -500,16 +502,16 @@ This is reportedly fixed in glibc 2.10.
.EX
#include <link.h>
#include <stdio.h>
-
+\&
unsigned int
la_version(unsigned int version)
{
printf("la_version(): version = %u; LAV_CURRENT = %u\en",
version, LAV_CURRENT);
-
+\&
return LAV_CURRENT;
}
-
+\&
char *
la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)
{
@@ -522,10 +524,10 @@ la_objsearch(const char *name, uintptr_t *cookie, unsigned int flag)
(flag == LA_SER_CONFIG) ? "LA_SER_CONFIG" :
(flag == LA_SER_SECURE) ? "LA_SER_SECURE" :
"???");
-
+\&
return name;
}
-
+\&
void
la_activity (uintptr_t *cookie, unsigned int flag)
{
@@ -535,7 +537,7 @@ la_activity (uintptr_t *cookie, unsigned int flag)
(flag == LA_ACT_DELETE) ? "LA_ACT_DELETE" :
"???");
}
-
+\&
unsigned int
la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)
{
@@ -545,24 +547,24 @@ la_objopen(struct link_map *map, Lmid_t lmid, uintptr_t *cookie)
(lmid == LM_ID_NEWLM) ? "LM_ID_NEWLM" :
"???",
cookie);
-
+\&
return LA_FLG_BINDTO | LA_FLG_BINDFROM;
}
-
+\&
unsigned int
la_objclose (uintptr_t *cookie)
{
printf("la_objclose(): %p\en", cookie);
-
+\&
return 0;
}
-
+\&
void
la_preinit(uintptr_t *cookie)
{
printf("la_preinit(): %p\en", cookie);
}
-
+\&
uintptr_t
la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
uintptr_t *defcook, unsigned int *flags, const char *symname)
@@ -571,10 +573,10 @@ la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
symname, sym\->st_value);
printf(" ndx = %u; flags = %#x", ndx, *flags);
printf("; refcook = %p; defcook = %p\en", refcook, defcook);
-
+\&
return sym\->st_value;
}
-
+\&
uintptr_t
la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
uintptr_t *defcook, unsigned int *flags, const char *symname)
@@ -583,17 +585,17 @@ la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
symname, sym\->st_value);
printf(" ndx = %u; flags = %#x", ndx, *flags);
printf("; refcook = %p; defcook = %p\en", refcook, defcook);
-
+\&
return sym\->st_value;
}
-
+\&
Elf32_Addr
la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,
uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,
unsigned int *flags, const char *symname, long *framesizep)
{
printf("la_i86_gnu_pltenter(): %s (%p)\en", symname, sym\->st_value);
-
+\&
return sym\->st_value;
}
.EE