ima_write_policy(): don't open-code memdup_user_nul()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 13 May 2017 22:15:25 +0000 (18:15 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 30 Jun 2017 06:04:07 +0000 (02:04 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
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)