|
@@ -662,13 +662,14 @@ long arch_ptrace(struct task_struct *child, long request,
|
|
|
* Notification of system call entry/exit
|
|
|
* - triggered by current->work.syscall_trace
|
|
|
*/
|
|
|
-asmlinkage void syscall_trace_enter(struct pt_regs *regs)
|
|
|
+asmlinkage long syscall_trace_enter(struct pt_regs *regs)
|
|
|
{
|
|
|
+ long syscall = regs->regs[2];
|
|
|
long ret = 0;
|
|
|
user_exit();
|
|
|
|
|
|
- /* do the secure computing check first */
|
|
|
- secure_computing_strict(regs->regs[2]);
|
|
|
+ if (secure_computing(syscall) == -1)
|
|
|
+ return -1;
|
|
|
|
|
|
if (test_thread_flag(TIF_SYSCALL_TRACE) &&
|
|
|
tracehook_report_syscall_entry(regs))
|
|
@@ -678,9 +679,10 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
|
|
|
trace_sys_enter(regs, regs->regs[2]);
|
|
|
|
|
|
audit_syscall_entry(syscall_get_arch(current, regs),
|
|
|
- regs->regs[2],
|
|
|
+ syscall,
|
|
|
regs->regs[4], regs->regs[5],
|
|
|
regs->regs[6], regs->regs[7]);
|
|
|
+ return syscall;
|
|
|
}
|
|
|
|
|
|
/*
|