diff options
author | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2010-02-13 21:24:45 +0100 |
---|---|---|
committer | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2010-02-13 21:24:45 +0100 |
commit | d2dc8169c4f2c97e4c6a92505cdb97243e22d9cc (patch) | |
tree | e811001eca9d2d4e7b4dffb6254e2d9aefcde841 /src/audit.c | |
parent | 7cfcb7e6a024d27e2bc9756d8a8595d7ecb50811 (diff) | |
download | latrace-d2dc8169c4f2c97e4c6a92505cdb97243e22d9cc.tar.gz latrace-d2dc8169c4f2c97e4c6a92505cdb97243e22d9cc.tar.xz latrace-d2dc8169c4f2c97e4c6a92505cdb97243e22d9cc.zip |
controled config feature and disable auditing feature
Diffstat (limited to 'src/audit.c')
-rw-r--r-- | src/audit.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/audit.c b/src/audit.c index 3eaff1d..58b9496 100644 --- a/src/audit.c +++ b/src/audit.c @@ -274,9 +274,17 @@ pltenter(ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook, struct link_map *lr = (struct link_map*) *refcook; struct link_map *ld = (struct link_map*) *defcook; - CHECK_PID(sym->st_value); + do { + if (lt_sh(&cfg, disabled)) + break; + + CHECK_PID(sym->st_value); + + sym_entry(symname, lr ? lr->l_name : NULL, + ld ? ld->l_name : NULL, regs); + + } while(0); - sym_entry(symname, lr ? lr->l_name : NULL, ld ? ld->l_name : NULL, regs); *framesizep = lt_sh(&cfg, framesize); return sym->st_value; } @@ -288,8 +296,16 @@ unsigned int pltexit(ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook, struct link_map *lr = (struct link_map*) *refcook; struct link_map *ld = (struct link_map*) *defcook; - CHECK_PID(0); + do { + if (lt_sh(&cfg, disabled)) + break; + + CHECK_PID(0); + + sym_exit(symname, lr ? lr->l_name : NULL, + ld ? ld->l_name : NULL, inregs, outregs); + + } while(0); - sym_exit(symname, lr ? lr->l_name : NULL, ld ? ld->l_name : NULL, inregs, outregs); return 0; } |