OSDN Git Service

[um] hostaudio: don't open-code memdup_user()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 2 Jan 2016 19:50:51 +0000 (14:50 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 4 Jan 2016 15:29:40 +0000 (10:29 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/um/drivers/hostaudio_kern.c

index f6b911c..3a4b587 100644 (file)
@@ -105,13 +105,9 @@ static ssize_t hostaudio_write(struct file *file, const char __user *buffer,
        printk(KERN_DEBUG "hostaudio: write called, count = %d\n", count);
 #endif
 
-       kbuf = kmalloc(count, GFP_KERNEL);
-       if (kbuf == NULL)
-               return -ENOMEM;
-
-       err = -EFAULT;
-       if (copy_from_user(kbuf, buffer, count))
-               goto out;
+       kbuf = memdup_user(buffer, count);
+       if (IS_ERR(kbuf))
+               return PTR_ERR(kbuf);
 
        err = os_write_file(state->fd, kbuf, count);
        if (err < 0)