diff options
author | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2022-01-25 11:53:56 +0000 |
---|---|---|
committer | Edward Tomasz Napierala <trasz@FreeBSD.org> | 2022-01-25 11:54:00 +0000 |
commit | 56981629f91fcdd358ccb41081ff6dcc2edac12f (patch) | |
tree | d90759996f7eb068e8348fa189a33b079fd2e7a4 | |
parent | 389844c058ec1ab69bb506601ed673fdd4e4d12b (diff) | |
download | src-56981629f91fcdd358ccb41081ff6dcc2edac12f.tar.gz src-56981629f91fcdd358ccb41081ff6dcc2edac12f.zip |
linux: Provide dummy seccomp(2)
Don't emit warnings; this isn't any different from a Linux kernel
built without OPTIONS_SECCOMP, so the userspace already needs to know
how to deal with it. This is also similar with how we handle seccomp
in linux_prctl().
Sponsored By: EPSRC
Differential Revision: https://reviews.freebsd.org/D33808
-rw-r--r-- | sys/compat/linux/linux_misc.c | 16 | ||||
-rw-r--r-- | sys/compat/linux/linux_misc.h | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index a8857eda680d..3287c64ab515 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -2880,3 +2880,19 @@ linux_poll(struct thread *td, struct linux_poll_args *args) tsp, NULL, 0)); } #endif /* __i386__ || __amd64__ */ + +int +linux_seccomp(struct thread *td, struct linux_seccomp_args *args) +{ + + switch (args->op) { + case LINUX_SECCOMP_GET_ACTION_AVAIL: + return (EOPNOTSUPP); + default: + /* + * Ignore unknown operations, just like Linux kernel built + * without CONFIG_SECCOMP. + */ + return (EINVAL); + } +} diff --git a/sys/compat/linux/linux_misc.h b/sys/compat/linux/linux_misc.h index 3bfc9843cda2..9a7cf89466a2 100644 --- a/sys/compat/linux/linux_misc.h +++ b/sys/compat/linux/linux_misc.h @@ -153,6 +153,9 @@ extern int stclohz; /* Linux syslog flags */ #define LINUX_SYSLOG_ACTION_READ_ALL 3 +/* Linux seccomp flags */ +#define LINUX_SECCOMP_GET_ACTION_AVAIL 2 + #if defined(__aarch64__) || (defined(__amd64__) && !defined(COMPAT_LINUX32)) int linux_ptrace_status(struct thread *td, int pid, int status); #endif |