ublk: Switch to memdup_user_nul() helper
authorRuan Jinjie <ruanjinjie@huawei.com>
Tue, 15 Aug 2023 11:48:14 +0000 (19:48 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 15 Aug 2023 16:06:54 +0000 (10:06 -0600)
Use memdup_user_nul() helper instead of open-coding
to simplify the code.

Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20230815114815.1551171-1-ruanjinjie@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index e85e075b5bce164c53690306f6b54aa67063e4a3..6ecd728ee5cea684651c38b13352c4f6d6fe14c2 100644 (file)
@@ -2742,14 +2742,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)) {