Re: [PATCH v2 2/2] ARM: ptrace: Restore syscall skipping for tracers

From: Arnd Bergmann
Date: Thu Aug 10 2023 - 16:11:37 EST


On Thu, Aug 10, 2023, at 21:54, Kees Cook wrote:
> Since commit 4e57a4ddf6b0 ("ARM: 9107/1: syscall: always store
> thread_info->abi_syscall"), the seccomp selftests "syscall_errno"
> and "syscall_faked" have been broken. Both seccomp and PTRACE depend
> on using the special value of "-1" for skipping syscalls. This value
> wasn't working because it was getting masked by __NR_SYSCALL_MASK in
> both PTRACE_SET_SYSCALL and get_syscall_nr().
>
> Explicitly test for -1 in PTRACE_SET_SYSCALL and get_syscall_nr(),
> leaving it exposed when present, allowing tracers to skip syscalls
> again.
>
> Cc: Russell King <linux@xxxxxxxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxxxx>
> Cc: Lecopzer Chen <lecopzer.chen@xxxxxxxxxxxx>
> Cc: Oleg Nesterov <oleg@xxxxxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Fixes: 4e57a4ddf6b0 ("ARM: 9107/1: syscall: always store
> thread_info->abi_syscall")
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>

Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>