crypto: hisilicon - switch to memdup_user_nul()
authorZou Wei <zou_wei@huawei.com>
Mon, 24 May 2021 09:47:08 +0000 (17:47 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 3 Jun 2021 12:24:03 +0000 (20:24 +0800)
Use memdup_user_nul() helper instead of open-coding to
simplify the code.

v1-->v2:
   fixed patch title error
v2-->v3:
   return the actual error

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zou Wei <zou_wei@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/qm.c

index fe35ea9..7c1f8ab 100644 (file)
@@ -1603,16 +1603,9 @@ static ssize_t qm_cmd_write(struct file *filp, const char __user *buffer,
        if (count > QM_DBG_WRITE_LEN)
                return -ENOSPC;
 
-       cmd_buf = kzalloc(count + 1, GFP_KERNEL);
-       if (!cmd_buf)
-               return -ENOMEM;
-
-       if (copy_from_user(cmd_buf, buffer, count)) {
-               kfree(cmd_buf);
-               return -EFAULT;
-       }
-
-       cmd_buf[count] = '\0';
+       cmd_buf = memdup_user_nul(buffer, count);
+       if (IS_ERR(cmd_buf))
+               return PTR_ERR(cmd_buf);
 
        cmd_buf_tmp = strchr(cmd_buf, '\n');
        if (cmd_buf_tmp) {