X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=security%2Fdevice_cgroup.c;h=3aacd0fe7179b26a4e08bc7bce343dd7fbadc239;hb=085780d5bb53edbc008156c310ac512aabd23610;hp=5ba78701adc3ab868079ee180b1fc2e4ffc3b95f;hpb=3d6eadcb5008beca1b289983ffd7771d1e947bac;p=karo-tx-linux.git diff --git a/security/device_cgroup.c b/security/device_cgroup.c index 5ba78701adc3..3aacd0fe7179 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))