diff options
Diffstat (limited to 'man7/rtld-audit.7')
-rw-r--r-- | man7/rtld-audit.7 | 42 |
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 |