Linux Container Development
 help / color / mirror / Atom feed
* [PATCH 1/1] devices cgroup: allow mkfifo
@ 2008-12-09 21:08 Serge E. Hallyn
       [not found] ` <20081209210802.GA24549-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Serge E. Hallyn @ 2008-12-09 21:08 UTC (permalink / raw)
  To: Daniel Lezcano; +Cc: Linux Containers

The devcgroup_inode_permission() hook in the devices whitelist
cgroup has always bypassed access checks on fifos.  But the
mknod hook did not.  The devices whitelist is only about block
and char devices, and fifos can't even be added to the whitelist,
so fifos can't be created at all except by tasks which have 'a'
in their whitelist (meaning they have access to all devices).

Fix the behavior by bypassing access checks to mkfifo.

Signed-off-by: Serge E. Hallyn <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
---
 security/device_cgroup.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 5ba7870..df9d491 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -513,6 +513,9 @@ int devcgroup_inode_mknod(int mode, dev_t dev)
 	struct dev_cgroup *dev_cgroup;
 	struct dev_whitelist_item *wh;
 
+	if (!S_ISBLK(mode) && !S_ISCHR(mode))
+		return 0;
+
 	rcu_read_lock();
 
 	dev_cgroup = task_devcgroup(current);
-- 
1.5.4.3

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-12-10 10:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-09 21:08 [PATCH 1/1] devices cgroup: allow mkfifo Serge E. Hallyn
     [not found] ` <20081209210802.GA24549-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-12-10 10:39   ` Daniel Lezcano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox