]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: scsi_debug: Replace kzalloc() + copy_from_user() with memdup_user_nul()
authorThorsten Blum <thorsten.blum@linux.dev>
Fri, 5 Sep 2025 10:31:45 +0000 (12:31 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 10 Sep 2025 02:28:50 +0000 (22:28 -0400)
Replace kzalloc() followed by copy_from_user() with memdup_user_nul() to
improve and simplify sdebug_error_write().

No functional changes intended.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_debug.c

index 90943857243c1e0b13b38ec8e5271a32c9f45aeb..2a8638937d2393141bf7c884ce72a31ebfdee59d 100644 (file)
@@ -1155,14 +1155,9 @@ static ssize_t sdebug_error_write(struct file *file, const char __user *ubuf,
        struct sdebug_err_inject *inject;
        struct scsi_device *sdev = (struct scsi_device *)file->f_inode->i_private;
 
-       buf = kzalloc(count + 1, GFP_KERNEL);
-       if (!buf)
-               return -ENOMEM;
-
-       if (copy_from_user(buf, ubuf, count)) {
-               kfree(buf);
-               return -EFAULT;
-       }
+       buf = memdup_user_nul(ubuf, count);
+       if (IS_ERR(buf))
+               return PTR_ERR(buf);
 
        if (buf[0] == '-')
                return sdebug_err_remove(sdev, buf, count);