Skip to content
Snippets Groups Projects
Commit 4baf6f12 authored by Brian Paul's avatar Brian Paul Committed by Ian Romanick
Browse files

mesa: fix double-freeing of dispatch tables inside glBegin/End.


We allocate dispatch tables for BeginEnd and OutsideBeginEnd.  But
when we destroy the context we were freeing the BeginEnd and Exec
tables.  If Exec==BeginEnd we did a double-free.  This would happen
if the context was destroyed while inside a glBegin/End pair.  Now
free the BeginEnd and OutsideBeginEnd pointers.

Cc: "10.1", "10.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
(cherry picked from commit ef6b6658)
parent 21792665
No related branches found
No related tags found
No related merge requests found
......@@ -1141,7 +1141,7 @@ _mesa_initialize_context(struct gl_context *ctx,
fail:
_mesa_reference_shared_state(ctx, &ctx->Shared, NULL);
free(ctx->BeginEnd);
free(ctx->Exec);
free(ctx->OutsideBeginEnd);
free(ctx->Save);
return GL_FALSE;
}
......@@ -1242,7 +1242,7 @@ _mesa_free_context_data( struct gl_context *ctx )
/* free dispatch tables */
free(ctx->BeginEnd);
free(ctx->Exec);
free(ctx->OutsideBeginEnd);
free(ctx->Save);
/* Shared context state (display lists, textures, etc) */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment