x86, x32, audit: Fix x32's AUDIT_ARCH wrt audit
is_compat_task() is the wrong check for audit arch; the check should be is_ia32_task(): x32 syscalls should be AUDIT_ARCH_X86_64, not AUDIT_ARCH_I386. CONFIG_AUDITSYSCALL is currently incompatible with x32, so this has no visible effect. Signed-off-by: Andy Lutomirski <luto@amacapital.net> Link: http://lkml.kernel.org/r/a0138ed8c709882aec06e4acc30bfa9b623b8717.1409954077.git.luto@amacapital.net Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
parent
ff27f38e0e
commit
81f49a8fd7
1 changed files with 1 additions and 10 deletions
|
@ -1441,15 +1441,6 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
|
||||||
force_sig_info(SIGTRAP, &info, tsk);
|
force_sig_info(SIGTRAP, &info, tsk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
|
||||||
# define IS_IA32 1
|
|
||||||
#elif defined CONFIG_IA32_EMULATION
|
|
||||||
# define IS_IA32 is_compat_task()
|
|
||||||
#else
|
|
||||||
# define IS_IA32 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We must return the syscall number to actually look up in the table.
|
* We must return the syscall number to actually look up in the table.
|
||||||
* This can be -1L to skip running any syscall at all.
|
* This can be -1L to skip running any syscall at all.
|
||||||
|
@ -1487,7 +1478,7 @@ long syscall_trace_enter(struct pt_regs *regs)
|
||||||
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
||||||
trace_sys_enter(regs, regs->orig_ax);
|
trace_sys_enter(regs, regs->orig_ax);
|
||||||
|
|
||||||
if (IS_IA32)
|
if (is_ia32_task())
|
||||||
audit_syscall_entry(AUDIT_ARCH_I386,
|
audit_syscall_entry(AUDIT_ARCH_I386,
|
||||||
regs->orig_ax,
|
regs->orig_ax,
|
||||||
regs->bx, regs->cx,
|
regs->bx, regs->cx,
|
||||||
|
|
Loading…
Reference in a new issue