Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[linux-block.git] / security / integrity / ima / ima_fs.c
index ca303e5d2b9403d858c9df8f5512c80040b0f3f7..ad491c51e8339c8f497b218c7b007b7c12a98ce4 100644 (file)
@@ -323,16 +323,11 @@ static ssize_t ima_write_policy(struct file *file, const char __user *buf,
        if (*ppos != 0)
                goto out;
 
-       result = -ENOMEM;
-       data = kmalloc(datalen + 1, GFP_KERNEL);
-       if (!data)
+       data = memdup_user_nul(buf, datalen);
+       if (IS_ERR(data)) {
+               result = PTR_ERR(data);
                goto out;
-
-       *(data + datalen) = '\0';
-
-       result = -EFAULT;
-       if (copy_from_user(data, buf, datalen))
-               goto out_free;
+       }
 
        result = mutex_lock_interruptible(&ima_write_mutex);
        if (result < 0)