[cairo] [PATCH] gl: Fix bug in _cairo_gl_pattern_texture_setup()

Bryce Harrington bryce at osg.samsung.com
Fri Aug 7 18:02:58 PDT 2015


On Mon, Aug 03, 2015 at 04:46:09PM +0530, Sahil Vij wrote:
> The memory allocated to "image" at line 298 is not freed before moving to label fail at line 305 and 314.
> This patch takes care of this memory leak in above mentioned cases.
> 
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91537
> Signed-off-by: Sahil Vij <sahil.vij at samsung.com>

LGTM, thanks.
Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>

To ssh://git.cairographics.org/git/cairo
   e40806e..f6c46d9  master -> master


> ---
>  src/cairo-gl-operand.c |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/src/cairo-gl-operand.c b/src/cairo-gl-operand.c
> index 4015747..1d1465a 100644
> --- a/src/cairo-gl-operand.c
> +++ b/src/cairo-gl-operand.c
> @@ -301,8 +301,10 @@ _cairo_gl_pattern_texture_setup (cairo_gl_operand_t *operand,
>         so we need to release this device while we paint it to the image. */
>      if (src_is_gl_surface) {
>  	status = _cairo_gl_context_release (ctx, status);
> -	if (unlikely (status))
> +	if (unlikely (status)) {
> +	    _cairo_surface_unmap_image (&surface->base, image);
>  	    goto fail;
> +	}
>      }
>  
>      status = _cairo_surface_offset_paint (&image->base, extents->x, extents->y,
> @@ -310,8 +312,10 @@ _cairo_gl_pattern_texture_setup (cairo_gl_operand_t *operand,
>  
>      if (src_is_gl_surface) {
>  	status = _cairo_gl_context_acquire (dst->base.device, &ctx);
> -	if (unlikely (status))
> +	if (unlikely (status)) {
> +	    _cairo_surface_unmap_image (&surface->base, image);
>  	    goto fail;
> +	}
>      }
>  
>      status = _cairo_surface_unmap_image (&surface->base, image);
> -- 
> 1.7.9.5
> 
> -- 
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list