Re: [PATCH] drm/vmwgfx: prevent memory leak in vmw_context_define

From: Thomas Hellstrom
Date: Wed Dec 11 2019 - 05:21:01 EST


On 9/25/19 6:46 AM, Navid Emamdoost wrote:
> In vmw_context_define if vmw_context_init fails the allocated resource
> should be unreferenced. The goto label was fixed.
>
> Signed-off-by: Navid Emamdoost <navid.emamdoost@xxxxxxxxx>
> ---
> drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
> index a56c9d802382..ac42f8a6acf0 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
> @@ -773,7 +773,7 @@ static int vmw_context_define(struct drm_device *dev, void *data,
>
> ret = vmw_context_init(dev_priv, res, vmw_user_context_free, dx);
> if (unlikely(ret != 0))
> - goto out_unlock;
> + goto out_err;
>
> tmp = vmw_resource_reference(&ctx->res);
> ret = ttm_base_object_init(tfile, &ctx->base, false, VMW_RES_CONTEXT,

This patch doesn't look correct. vmw_context_init should free up all
resources if failing.

Thanks,

Thomas