On 10/21/25 12:01 PM, Ian Forbes wrote:
> This data originates from userspace and is used in buffer offset
> calculations which could potentially overflow causing an out-of-bounds
> access.
> 
> Fixes: 8ce75f8ab904 ("drm/vmwgfx: Update device includes for DX device 
> functionality")
> Reported-by: Rohit Keshri <[email protected]>
> Signed-off-by: Ian Forbes <[email protected]>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
> index b00818aaf94b..41a77dce99a2 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
> @@ -3668,6 +3668,11 @@ static int vmw_cmd_check(struct vmw_private *dev_priv,
>  
>  
>       cmd_id = header->id;
> +     if (header->size > SVGA_CMD_MAX_DATASIZE) {
> +             VMW_DEBUG_USER("SVGA3D command: %d is too big.\n",
> +                            cmd_id + SVGA_3D_CMD_BASE);
> +             return -E2BIG;
> +     }
>       *size = header->size + sizeof(SVGA3dCmdHeader);
>  
>       cmd_id -= SVGA_3D_CMD_BASE;

Looks good.

Reviewed-by: Maaz Mombasawala <[email protected]>

-- 
Maaz Mombasawala <[email protected]>

Reply via email to