Thanks, Murray, I'll include in the next vmwgfx-fixes pull request. On Mon, 2019-05-20 at 21:57 +1200, Murray McAllister wrote: > If SVGA_3D_CMD_DX_SET_SHADER is called with a shader ID > of SVGA3D_INVALID_ID, and a shader type of > SVGA3D_SHADERTYPE_INVALID, the calculated binding.shader_slot > will be 4294967295, leading to an out-of-bounds read in > vmw_binding_loc() > when the offset is calculated. > > Signed-off-by: Murray McAllister <murray.mcallister@xxxxxxxxx> > --- > drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c > index 2ff7ba04d8c8..9aeb5448cfc1 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c > @@ -2193,7 +2193,8 @@ static int vmw_cmd_dx_set_shader(struct > vmw_private *dev_priv, > > cmd = container_of(header, typeof(*cmd), header); > > - if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX) { > + if (cmd->body.type >= SVGA3D_SHADERTYPE_DX10_MAX || > + cmd->body.type < SVGA3D_SHADERTYPE_MIN) { > VMW_DEBUG_USER("Illegal shader type %u.\n", > (unsigned int) cmd->body.type); > return -EINVAL; _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel