[Mesa-dev] [PATCH] main: Avoid double-free of shader Label
Brian Paul
brianp at vmware.com
Thu Feb 13 09:59:35 PST 2014
On 02/13/2014 10:55 AM, Carl Worth wrote:
> As documented, the _mesa_free_shader_program_data function:
>
> "Frees all the data that hangs off a shader program object, but not
> the object itself."
>
> This means that this function may be called multiple times on the same object,
> (and has been observed to). Meanwhile, the shProg->Label field was not being
> set to NULL after its free(). This led to a second call to free() of the same
> address on the second call to this function.
>
> Fix this by setting this field to NULL after free(), (just as with all other
> calls to free() in this function).
> ---
> src/mesa/main/shaderobj.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
> index 4f4bb69..d5c3d80 100644
> --- a/src/mesa/main/shaderobj.c
> +++ b/src/mesa/main/shaderobj.c
> @@ -355,6 +355,7 @@ _mesa_free_shader_program_data(struct gl_context *ctx,
> }
>
> free(shProg->Label);
> + shProg->Label = NULL;
> }
>
>
>
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list