X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=security%2Fdevice_cgroup.c;h=3aacd0fe7179b26a4e08bc7bce343dd7fbadc239;hb=84f09f46b4ee9e4e9b6381f8af31817516d2091b;hp=5ba78701adc3ab868079ee180b1fc2e4ffc3b95f;hpb=0552f297951d0ab3a1027f9b06fa40c9be8378ba;p=linux-2.6-omap-h63xx.git diff --git a/security/device_cgroup.c b/security/device_cgroup.c index 5ba78701adc..3aacd0fe717 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ -513,11 +513,14 @@ 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); - list_for_each_entry(wh, &dev_cgroup->whitelist, list) { + list_for_each_entry_rcu(wh, &dev_cgroup->whitelist, list) { if (wh->type & DEV_ALL) goto acc_check; if ((wh->type & DEV_BLOCK) && !S_ISBLK(mode))