From: Will Drewry <wad@chromium.org>
To: linux-kernel@vger.kernel.org
Cc: torvalds@linux-foundation.org, djm@mindrot.org,
segoon@openwall.com, kees.cook@canonical.com, mingo@elte.hu,
rostedt@goodmis.org, jmorris@namei.org, fweisbec@gmail.com,
tglx@linutronix.de, scarybeasts@gmail.com,
Will Drewry <wad@chromium.org>,
Andrew Morton <akpm@linux-foundation.org>,
Al Viro <viro@zeniv.linux.org.uk>,
David Rientjes <rientjes@google.com>,
Stephen Wilson <wilsons@start.ca>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Subject: [PATCH v9 04/13] seccomp_filter: add process state reporting
Date: Thu, 23 Jun 2011 19:36:43 -0500 [thread overview]
Message-ID: <1308875813-20122-4-git-send-email-wad@chromium.org> (raw)
In-Reply-To: <1308875813-20122-1-git-send-email-wad@chromium.org>
Adds seccomp and seccomp_filter status reporting to proc.
/proc/<pid>/seccomp_filter provides the current seccomp mode
and the list of allowed or dynamically filtered system calls.
v9: rebase on to bccaeafd7c117acee36e90d37c7e05c19be9e7bf
v8: -
v7: emit seccomp mode directly
v6: -
v5: fix typos when mailing the wrong patch series
v4: move from rcu guard to mutex guard
v3: changed to using filters directly.
v2: removed status entry, added seccomp file.
(requested by kosaki.motohiro@jp.fujitsu.com)
allowed S_IRUGO reading of entries
(requested by viro@zeniv.linux.org.uk)
added flags
got rid of the seccomp_t type
dropped seccomp file
Signed-off-by: Will Drewry <wad@chromium.org>
---
fs/proc/base.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 8a84210..52e1314 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -73,6 +73,7 @@
#include <linux/security.h>
#include <linux/ptrace.h>
#include <linux/tracehook.h>
+#include <linux/seccomp.h>
#include <linux/cgroup.h>
#include <linux/cpuset.h>
#include <linux/audit.h>
@@ -582,6 +583,30 @@ static int proc_pid_syscall(struct task_struct *task, char *buffer)
}
#endif /* CONFIG_HAVE_ARCH_TRACEHOOK */
+/*
+ * Print out the current seccomp filter set for the task.
+ */
+#ifdef CONFIG_SECCOMP_FILTER
+int proc_pid_seccomp_filter_show(struct seq_file *m, struct pid_namespace *ns,
+ struct pid *pid, struct task_struct *task)
+{
+ struct seccomp_filters *filters;
+
+ seq_printf(m, "Mode: %d\n", task->seccomp.mode);
+ /* Avoid allowing other processes to incur too much added contention by
+ * only acquiring a reference under the task-wide mutex.
+ */
+ if (mutex_lock_killable(&task->seccomp.filters_guard))
+ return -1;
+ filters = get_seccomp_filters(task->seccomp.filters);
+ mutex_unlock(&task->seccomp.filters_guard);
+
+ seccomp_show_filters(filters, m);
+ put_seccomp_filters(filters);
+ return 0;
+}
+#endif /* CONFIG_SECCOMP_FILTER */
+
/************************************************************************/
/* Here the fs part begins */
/************************************************************************/
@@ -2785,6 +2810,9 @@ static const struct pid_entry tgid_base_stuff[] = {
#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
INF("syscall", S_IRUGO, proc_pid_syscall),
#endif
+#ifdef CONFIG_SECCOMP_FILTER
+ ONE("seccomp_filter", S_IRUGO, proc_pid_seccomp_filter_show),
+#endif
INF("cmdline", S_IRUGO, proc_pid_cmdline),
ONE("stat", S_IRUGO, proc_tgid_stat),
ONE("statm", S_IRUGO, proc_pid_statm),
@@ -3131,6 +3159,9 @@ static const struct pid_entry tid_base_stuff[] = {
#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
INF("syscall", S_IRUGO, proc_pid_syscall),
#endif
+#ifdef CONFIG_SECCOMP_FILTER
+ ONE("seccomp_filter", S_IRUGO, proc_pid_seccomp_filter_show),
+#endif
INF("cmdline", S_IRUGO, proc_pid_cmdline),
ONE("stat", S_IRUGO, proc_tid_stat),
ONE("statm", S_IRUGO, proc_pid_statm),
--
1.7.0.4
next prev parent reply other threads:[~2011-06-24 0:41 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-24 0:36 [PATCH v9 01/13] tracing: split out filter initialization and clean up uses Will Drewry
2011-06-24 0:36 ` [PATCH v9 02/13] tracing: split out syscall_trace_enter construction Will Drewry
2011-06-24 0:36 ` [PATCH v9 03/13] seccomp_filter: new mode with configurable syscall filters Will Drewry
2011-06-24 7:30 ` Damien Miller
2011-06-24 20:20 ` Kees Cook
2011-06-24 0:36 ` Will Drewry [this message]
2011-06-24 0:36 ` [PATCH v9 05/13] seccomp_filter: Document what seccomp_filter is and how it works Will Drewry
2011-06-24 7:24 ` Chris Evans
[not found] ` <BANLkTimtYUyXbZjWhjK61B_1WBXE4MoAeA@mail.gmail.com>
2011-06-26 23:20 ` James Morris
2011-06-29 19:13 ` Will Drewry
2011-06-30 1:30 ` James Morris
2011-07-01 11:56 ` Ingo Molnar
2011-07-01 12:56 ` Will Drewry
2011-07-01 13:07 ` Ingo Molnar
2011-07-01 15:46 ` Will Drewry
2011-07-01 16:10 ` Ingo Molnar
2011-07-01 16:43 ` Will Drewry
2011-07-01 18:04 ` Steven Rostedt
2011-07-01 18:09 ` Will Drewry
2011-07-01 18:48 ` Steven Rostedt
2011-07-04 2:19 ` James Morris
2011-07-05 12:40 ` Steven Rostedt
2011-07-05 23:46 ` James Morris
2011-07-06 0:37 ` [Ksummit-2011-discuss] " Ted Ts'o
2011-07-05 23:56 ` Steven Rostedt
2011-07-05 2:54 ` [Ksummit-2011-discuss] " Eugene Teo
2011-07-01 20:25 ` Kees Cook
2011-07-04 16:09 ` [Ksummit-2011-discuss] " Greg KH
2011-07-01 21:00 ` Ingo Molnar
2011-07-01 21:34 ` Will Drewry
2011-07-05 9:50 ` Ingo Molnar
2011-07-06 18:24 ` Will Drewry
2011-07-05 15:26 ` Vasiliy Kulikov
2011-06-24 0:36 ` [PATCH v9 06/13] x86: add HAVE_SECCOMP_FILTER and seccomp_execve Will Drewry
2011-06-24 0:36 ` [PATCH v9 07/13] arm: select HAVE_SECCOMP_FILTER Will Drewry
2011-06-24 0:36 ` [PATCH v9 08/13] microblaze: select HAVE_SECCOMP_FILTER and provide seccomp_execve Will Drewry
2011-06-24 0:36 ` [PATCH v9 09/13] mips: " Will Drewry
2011-06-24 0:36 ` [PATCH v9 10/13] s390: " Will Drewry
2011-06-24 0:36 ` [PATCH v9 11/13] powerpc: " Will Drewry
2011-08-30 5:28 ` Benjamin Herrenschmidt
2011-11-28 0:14 ` Benjamin Herrenschmidt
2011-11-28 1:45 ` Will Drewry
2011-06-24 0:36 ` [PATCH v9 12/13] sparc: " Will Drewry
2011-06-24 0:36 ` [PATCH v9 13/13] sh: select HAVE_SECCOMP_FILTER Will Drewry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1308875813-20122-4-git-send-email-wad@chromium.org \
--to=wad@chromium.org \
--cc=akpm@linux-foundation.org \
--cc=djm@mindrot.org \
--cc=fweisbec@gmail.com \
--cc=jmorris@namei.org \
--cc=kees.cook@canonical.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=scarybeasts@gmail.com \
--cc=segoon@openwall.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
--cc=wilsons@start.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox