diff options
Diffstat (limited to 'arch/x86/kernel/ptrace.c')
| -rw-r--r-- | arch/x86/kernel/ptrace.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index 685845cf16e..13b1990c7c5 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c @@ -1480,7 +1480,11 @@ long syscall_trace_enter(struct pt_regs *regs)  		regs->flags |= X86_EFLAGS_TF;  	/* do the secure computing check first */ -	secure_computing(regs->orig_ax); +	if (secure_computing(regs->orig_ax)) { +		/* seccomp failures shouldn't expose any additional code. */ +		ret = -1L; +		goto out; +	}  	if (unlikely(test_thread_flag(TIF_SYSCALL_EMU)))  		ret = -1L; @@ -1505,6 +1509,7 @@ long syscall_trace_enter(struct pt_regs *regs)  				    regs->dx, regs->r10);  #endif +out:  	return ret ?: regs->orig_ax;  }  |