From: Ian Romanick <ian.d.roman...@intel.com> Otherwise intelDestroyContext would try to dereference the pointer to freed memory.
v2: Don't call intelDestroyContext if the context already freed due to failure. NOTE: This is a candidate for the 9.0 branch. Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54301 --- src/mesa/drivers/dri/i965/brw_context.c | 1 + src/mesa/drivers/dri/intel/intel_screen.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 1083e28..60b6454 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -149,6 +149,7 @@ brwCreateContext(int api, sharedContextPrivate, &functions )) { printf("%s: failed to init intel context\n", __FUNCTION__); free(brw); + driContextPriv->driverPrivate = NULL; *error = __DRI_CTX_ERROR_NO_MEMORY; return false; } diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index e3a442c..6ae78d2 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -821,7 +821,9 @@ intelCreateContext(gl_api api, if (success) return true; - intelDestroyContext(driContextPriv); + if (driContextPriv->driverPrivate != NULL) + intelDestroyContext(driContextPriv); + return false; } -- 1.7.11.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev