OSDN Git Service

staging: greybus: camera: Switch to memdup_user_nul()
authorYang Yingliang <yangyingliang@huawei.com>
Thu, 1 Apr 2021 10:36:45 +0000 (18:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Apr 2021 12:56:38 +0000 (14:56 +0200)
Use memdup_user_nul() helper instead of open-coding to
simplify the code.

Reported-by: Hulk Robot <hulkci@huawei.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20210401103645.1558813-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/greybus/camera.c

index b570e13..cdbb42c 100644 (file)
@@ -1120,16 +1120,9 @@ static ssize_t gb_camera_debugfs_write(struct file *file,
        if (len > 1024)
                return -EINVAL;
 
-       kbuf = kmalloc(len + 1, GFP_KERNEL);
-       if (!kbuf)
-               return -ENOMEM;
-
-       if (copy_from_user(kbuf, buf, len)) {
-               ret = -EFAULT;
-               goto done;
-       }
-
-       kbuf[len] = '\0';
+       kbuf = memdup_user_nul(buf, len);
+       if (IS_ERR(kbuf))
+               return PTR_ERR(kbuf);
 
        ret = op->execute(gcam, kbuf, len);