[PATCH] vhost-scsi: Fix check for inline_sg_cnt exceeding preallocated limit

Alok Tiwari posted 1 patch 6 months, 2 weeks ago
There is a newer version of this series
drivers/vhost/scsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] vhost-scsi: Fix check for inline_sg_cnt exceeding preallocated limit
Posted by Alok Tiwari 6 months, 2 weeks ago
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>
---
 drivers/vhost/scsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
index c12a0d4e6386..8d655b2d15d9 100644
--- a/drivers/vhost/scsi.c
+++ b/drivers/vhost/scsi.c
@@ -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;
 	}
-- 
2.47.1
Re: [PATCH] vhost-scsi: Fix check for inline_sg_cnt exceeding preallocated limit
Posted by Stefan Hajnoczi 6 months, 1 week ago
On Sat, Jun 07, 2025 at 12:40:29PM -0700, Alok Tiwari wrote:
> 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>
> ---
>  drivers/vhost/scsi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Re: [PATCH] vhost-scsi: Fix check for inline_sg_cnt exceeding preallocated limit
Posted by Mike Christie 6 months, 2 weeks ago
On 6/7/25 2:40 PM, Alok Tiwari wrote:
> 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>
> ---
>  drivers/vhost/scsi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
> index c12a0d4e6386..8d655b2d15d9 100644
> --- a/drivers/vhost/scsi.c
> +++ b/drivers/vhost/scsi.c
> @@ -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;
>  	}

Thanks.

Reviewed-by: Mike Christie <michael.christie@oracle.com>