|
@@ -84,13 +84,9 @@ static int dev_whitelist_copy(struct list_head *dest, struct list_head *orig)
|
|
|
struct dev_whitelist_item *wh, *tmp, *new;
|
|
|
|
|
|
list_for_each_entry(wh, orig, list) {
|
|
|
- new = kmalloc(sizeof(*wh), GFP_KERNEL);
|
|
|
+ new = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
|
|
|
if (!new)
|
|
|
goto free_and_exit;
|
|
|
- new->major = wh->major;
|
|
|
- new->minor = wh->minor;
|
|
|
- new->type = wh->type;
|
|
|
- new->access = wh->access;
|
|
|
list_add_tail(&new->list, dest);
|
|
|
}
|
|
|
|
|
@@ -114,11 +110,10 @@ static int dev_whitelist_add(struct dev_cgroup *dev_cgroup,
|
|
|
{
|
|
|
struct dev_whitelist_item *whcopy, *walk;
|
|
|
|
|
|
- whcopy = kmalloc(sizeof(*whcopy), GFP_KERNEL);
|
|
|
+ whcopy = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
|
|
|
if (!whcopy)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
- memcpy(whcopy, wh, sizeof(*whcopy));
|
|
|
spin_lock(&dev_cgroup->lock);
|
|
|
list_for_each_entry(walk, &dev_cgroup->whitelist, list) {
|
|
|
if (walk->type != wh->type)
|