• A
    audit: Syscall rules are not applied to existing processes on non-x86 · cdee3904
    Anton Blanchard 提交于
    Commit b05d8447 (audit: inline audit_syscall_entry to reduce
    burden on archs) changed audit_syscall_entry to check for a dummy
    context before calling __audit_syscall_entry. Unfortunately the dummy
    context state is maintained in __audit_syscall_entry so once set it
    never gets cleared, even if the audit rules change.
    
    As a result, if there are no auditing rules when a process starts
    then it will never be subject to any rules added later. x86 doesn't
    see this because it has an assembly fast path that calls directly into
    __audit_syscall_entry.
    
    I noticed this issue when working on audit performance optimisations.
    I wrote a set of simple test cases available at:
    
    http://ozlabs.org/~anton/junkcode/audit_tests.tar.gz
    
    02_new_rule.py fails without the patch and passes with it. The
    test case clears all rules, starts a process, adds a rule then
    verifies the process produces a syscall audit record.
    Signed-off-by: NAnton Blanchard <anton@samba.org>
    Cc: <stable@kernel.org> # 3.3+
    Signed-off-by: NEric Paris <eparis@redhat.com>
    cdee3904
audit.h 15.1 KB