Use memdup_user_nul() helper instead of open-coding to
simplify the code.

Reported-by: Hulk Robot <hul...@huawei.com>
Signed-off-by: Yang Yingliang <yangyingli...@huawei.com>
---
v3:
  remove duplicate ';'
v2:
  delete unnecessary blank line
  use return PTR_ERR(kbuf) instead
---
 drivers/staging/greybus/camera.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c
index b570e13394ac..2ecdc1bc5092 100644
--- a/drivers/staging/greybus/camera.c
+++ b/drivers/staging/greybus/camera.c
@@ -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);
 
-- 
2.25.1

Reply via email to