seccomp: Stub for !HAVE_ARCH_SECCOMP_FILTER

If we have CONFIG_SECCOMP but not CONFIG_HAVE_ARCH_SECCOMP_FILTER
we get a compilation error:

../kernel/entry/common.c: In function 'syscall_trace_enter':
../kernel/entry/common.c:55:23: error: implicit declaration of function '__secure_computing' [-Werror=implicit-function-declaration]
   55 |                 ret = __secure_computing(NULL);
      |                       ^~~~~~~~~~~~~~~~~~

This is because generic entry calls __secure_computing()
unconditionally.

Provide the needed stub similar to how current ARM does
this by calling secure_computing_strict() in the absence
of secure_computing(). This is similar to what is done for
ARM in arch/arm/kernel/ptrace.c.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20241022-seccomp-compile-error-v2-1-c9f08a4f8ebb@linaro.org
Signed-off-by: Kees Cook <kees@kernel.org>
This commit is contained in:
Linus Walleij 2024-10-22 15:41:34 +02:00 committed by Kees Cook
parent 8cf0b93919
commit 8cf8dfceeb

View File

@ -32,6 +32,11 @@ static inline int secure_computing(void)
} }
#else #else
extern void secure_computing_strict(int this_syscall); extern void secure_computing_strict(int this_syscall);
static inline int __secure_computing(const struct seccomp_data *sd)
{
secure_computing_strict(sd->nr);
return 0;
}
#endif #endif
extern long prctl_get_seccomp(void); extern long prctl_get_seccomp(void);