aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2022-01-28 10:55:11 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2022-01-28 11:45:41 +0000
commit99454d3e98ff205881aa7abef39234c9afc7600c (patch)
tree165a07b56be03ac7abd481ae7114cc959330fb97
parent612d42e5dc7608d7cdaa12c95b70fe9aff809b0a (diff)
downloadsrc-99454d3e98ff205881aa7abef39234c9afc7600c.tar.gz
src-99454d3e98ff205881aa7abef39234c9afc7600c.zip
linux: Provide dummy seccomp(2)
Don't emit messages; 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_dummy.c2
-rw-r--r--sys/compat/linux/linux_misc.c16
-rw-r--r--sys/compat/linux/linux_misc.h3
3 files changed, 19 insertions, 2 deletions
diff --git a/sys/compat/linux/linux_dummy.c b/sys/compat/linux/linux_dummy.c
index 91a56616fc10..e254bf94c026 100644
--- a/sys/compat/linux/linux_dummy.c
+++ b/sys/compat/linux/linux_dummy.c
@@ -112,8 +112,6 @@ DUMMY(kcmp);
DUMMY(finit_module);
DUMMY(sched_setattr);
DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
/* Linux 3.18: */
DUMMY(bpf);
/* Linux 3.19: */
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