Module: Mesa Branch: 10.1 Commit: 07ada102cba0e9f0b826cc4cdad0a1398274d6b2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=07ada102cba0e9f0b826cc4cdad0a1398274d6b2
Author: Brian Paul <[email protected]> Date: Thu May 15 15:49:14 2014 -0600 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" <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> (cherry picked from commit ef6b6658f91bd5871739bdb71a08042f26abe389) --- src/mesa/main/context.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index b818ab4..dcd319b 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1112,7 +1112,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; } @@ -1213,7 +1213,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) */ _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
