]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
vhost-scsi: Fix check for inline_sg_cnt exceeding preallocated limit
authorAlok Tiwari <alok.a.tiwari@oracle.com>
Sat, 28 Jun 2025 18:33:53 +0000 (11:33 -0700)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 1 Aug 2025 13:11:08 +0000 (09:11 -0400)
The condition comparing ret to VHOST_SCSI_PREALLOC_SGLS was incorrect,
as ret holds the result of kstrtouint() (typically 0 on success),
not the parsed value. Update the check to use cnt, which contains the
actual user-provided value.

prevents silently accepting values exceeding the maximum inline_sg_cnt.

Fixes: bca939d5bcd0 ("vhost-scsi: Dynamically allocate scatterlists")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20250628183405.3979538-1-alok.a.tiwari@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
drivers/vhost/scsi.c

index fd9a517dfe1367f8dd671c43ee50de67f41bbc2c..abf51332a5c5595df00c63029715dc0fdf50f985 100644 (file)
@@ -71,7 +71,7 @@ static int vhost_scsi_set_inline_sg_cnt(const char *buf,
        if (ret)
                return ret;
 
-       if (ret > VHOST_SCSI_PREALLOC_SGLS) {
+       if (cnt > VHOST_SCSI_PREALLOC_SGLS) {
                pr_err("Max inline_sg_cnt is %u\n", VHOST_SCSI_PREALLOC_SGLS);
                return -EINVAL;
        }