diff mbox series

[-next] ublk: Switch to memdup_user_nul() helper

Message ID 20230815114815.1551171-1-ruanjinjie@huawei.com (mailing list archive)
State New, archived
Headers show
Series [-next] ublk: Switch to memdup_user_nul() helper | expand

Commit Message

Jinjie Ruan Aug. 15, 2023, 11:48 a.m. UTC
Use memdup_user_nul() helper instead of open-coding
to simplify the code.

Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
---
 drivers/block/ublk_drv.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

Comments

Ming Lei Aug. 15, 2023, 12:39 p.m. UTC | #1
On Tue, Aug 15, 2023 at 07:48:14PM +0800, Ruan Jinjie wrote:
> Use memdup_user_nul() helper instead of open-coding
> to simplify the code.
> 
> Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
> ---
>  drivers/block/ublk_drv.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
> index 85a81ee556d5..fa7e6955eb3b 100644
> --- a/drivers/block/ublk_drv.c
> +++ b/drivers/block/ublk_drv.c
> @@ -2743,14 +2743,9 @@ static int ublk_ctrl_uring_cmd_permission(struct ublk_device *ub,
>  	if (header->len < header->dev_path_len)
>  		return -EINVAL;
>  
> -	dev_path = kmalloc(header->dev_path_len + 1, GFP_KERNEL);
> -	if (!dev_path)
> -		return -ENOMEM;
> -
> -	ret = -EFAULT;
> -	if (copy_from_user(dev_path, argp, header->dev_path_len))
> -		goto exit;
> -	dev_path[header->dev_path_len] = 0;
> +	dev_path = memdup_user_nul(argp, header->dev_path_len);
> +	if (IS_ERR(dev_path))
> +		return PTR_ERR(dev_path);

Nice cleanup:

Reviewed-by: Ming Lei <ming.lei@redhat.com>

Thanks,
Ming
Jens Axboe Aug. 15, 2023, 3:06 p.m. UTC | #2
On Tue, 15 Aug 2023 19:48:14 +0800, Ruan Jinjie wrote:
> Use memdup_user_nul() helper instead of open-coding
> to simplify the code.
> 
> 

Applied, thanks!

[1/1] ublk: Switch to memdup_user_nul() helper
      commit: 306d74055754976f6bbe67aef60fe1022c6b76e0

Best regards,
diff mbox series

Patch

diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
index 85a81ee556d5..fa7e6955eb3b 100644
--- a/drivers/block/ublk_drv.c
+++ b/drivers/block/ublk_drv.c
@@ -2743,14 +2743,9 @@  static int ublk_ctrl_uring_cmd_permission(struct ublk_device *ub,
 	if (header->len < header->dev_path_len)
 		return -EINVAL;
 
-	dev_path = kmalloc(header->dev_path_len + 1, GFP_KERNEL);
-	if (!dev_path)
-		return -ENOMEM;
-
-	ret = -EFAULT;
-	if (copy_from_user(dev_path, argp, header->dev_path_len))
-		goto exit;
-	dev_path[header->dev_path_len] = 0;
+	dev_path = memdup_user_nul(argp, header->dev_path_len);
+	if (IS_ERR(dev_path))
+		return PTR_ERR(dev_path);
 
 	ret = -EINVAL;
 	switch (_IOC_NR(cmd->cmd_op)) {