ARM: 8087/1: ptrace: reload syscall number after secure_computing() check
authorWill Deacon <will.deacon@arm.com>
Fri, 27 Jun 2014 16:01:47 +0000 (17:01 +0100)
committerJP Abgrall <jpa@google.com>
Mon, 13 Oct 2014 19:37:18 +0000 (19:37 +0000)
commit41900903483eb96602dd72e719a798c208118aad
tree8e82b6bc4dd4423c54bc70674786d9c8e69afb00
parenta9ba4285aa5722a3b4d84888e78ba8adc0046b28
ARM: 8087/1: ptrace: reload syscall number after secure_computing() check

On the syscall tracing path, we call out to secure_computing() to allow
seccomp to check the syscall number being attempted. As part of this, a
SIGTRAP may be sent to the tracer and the syscall could be re-written by
a subsequent SET_SYSCALL ptrace request. Unfortunately, this new syscall
is ignored by the current code unless TIF_SYSCALL_TRACE is also set on
the current thread.

This patch slightly reworks the enter path of the syscall tracing code
so that we always reload the syscall number from
current_thread_info()->syscall after the potential ptrace traps.

Acked-by: Kees Cook <keescook@chromium.org>
Tested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/ptrace.c