X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=arch%2Fs390%2Fkernel%2Fptrace.c;fp=arch%2Fs390%2Fkernel%2Fptrace.c;h=9336e824e2db5e119810b438c8c0e272487937b4;hb=797cee982eef9195736afc5e7f3b8f613c41d19a;hp=defc0dca4510c7c7e4b9d8f7bc73786cdeb1788e;hpb=43761473c254b45883a64441dd0bc85a42f3645c;p=cascardo%2Flinux.git diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index defc0dca4510..9336e824e2db 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c @@ -821,16 +821,8 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request, asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) { - long ret = 0; unsigned long mask = -1UL; - /* Do the secure computing check first. */ - if (secure_computing()) { - /* seccomp failures shouldn't expose any additional code. */ - ret = -1; - goto out; - } - /* * The sysc_tracesys code in entry.S stored the system * call number to gprs[2]. @@ -844,7 +836,13 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) * the system call and the system call restart handling. */ clear_pt_regs_flag(regs, PIF_SYSCALL); - ret = -1; + return -1; + } + + /* Do the secure computing check after ptrace. */ + if (secure_computing(NULL)) { + /* seccomp failures shouldn't expose any additional code. */ + return -1; } if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) @@ -854,10 +852,10 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) mask = 0xffffffff; audit_syscall_entry(regs->gprs[2], regs->orig_gpr2 & mask, - regs->gprs[3] & mask, regs->gprs[4] & mask, - regs->gprs[5] & mask); -out: - return ret ?: regs->gprs[2]; + regs->gprs[3] &mask, regs->gprs[4] &mask, + regs->gprs[5] &mask); + + return regs->gprs[2]; } asmlinkage void do_syscall_trace_exit(struct pt_regs *regs)