diff options
author | Oleg Nesterov <oleg@redhat.com> | 2025-01-28 16:03:00 +0100 |
---|---|---|
committer | Kees Cook <kees@kernel.org> | 2025-02-10 09:26:22 -0800 |
commit | 0fe1ebf3f056d99ef4835dc5d88b9c3bb12e44c1 (patch) | |
tree | 1c616f0246b94b2c015ac911cb4a0061724f6b81 /arch/mips/kernel | |
parent | 18f7686a1ce6b72e0ac61aa16f167eb931185cf1 (diff) | |
download | linux-0fe1ebf3f056d99ef4835dc5d88b9c3bb12e44c1.tar.gz linux-0fe1ebf3f056d99ef4835dc5d88b9c3bb12e44c1.tar.bz2 linux-0fe1ebf3f056d99ef4835dc5d88b9c3bb12e44c1.zip |
seccomp/mips: change syscall_trace_enter() to use secure_computing()
arch/mips/Kconfig selects HAVE_ARCH_SECCOMP_FILTER so syscall_trace_enter()
can just use __secure_computing(NULL) and rely on populate_seccomp_data(sd)
and "sd == NULL" checks in __secure_computing(sd) paths.
With the change above syscall_trace_enter() can just use secure_computing()
and avoid #ifdef + test_thread_flag(TIF_SECCOMP). CONFIG_GENERIC_ENTRY is
not defined, so test_syscall_work(SECCOMP) will check TIF_SECCOMP.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Reviewed-by: Kees Cook <kees@kernel.org>
Link: https://lore.kernel.org/r/20250128150300.GA15318@redhat.com
Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r-- | arch/mips/kernel/ptrace.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c index 61503a36067e..f7107479c7fa 100644 --- a/arch/mips/kernel/ptrace.c +++ b/arch/mips/kernel/ptrace.c @@ -1326,24 +1326,8 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs) return -1; } -#ifdef CONFIG_SECCOMP - if (unlikely(test_thread_flag(TIF_SECCOMP))) { - int ret, i; - struct seccomp_data sd; - unsigned long args[6]; - - sd.nr = current_thread_info()->syscall; - sd.arch = syscall_get_arch(current); - syscall_get_arguments(current, regs, args); - for (i = 0; i < 6; i++) - sd.args[i] = args[i]; - sd.instruction_pointer = KSTK_EIP(current); - - ret = __secure_computing(&sd); - if (ret == -1) - return ret; - } -#endif + if (secure_computing()) + return -1; if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) trace_sys_enter(regs, regs->regs[2]); |