Mesa (10.1): mesa: fix double-freeing of dispatch tables inside glBegin/ End.
Carl Worth
cworth at kemper.freedesktop.org
Mon May 19 22:25:18 UTC 2014
Module: Mesa
Branch: 10.1
Commit: 07ada102cba0e9f0b826cc4cdad0a1398274d6b2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=07ada102cba0e9f0b826cc4cdad0a1398274d6b2
Author: Brian Paul <brianp at vmware.com>
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" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
(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) */
More information about the mesa-commit
mailing list