summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnuj Phogat <[email protected]>2012-01-11 15:26:10 -0800
committerAnuj Phogat <[email protected]>2012-01-16 15:07:17 -0800
commitdd7220652e65a8a23e7739eeee687f3d6a865b80 (patch)
treeab07784d8fa7a6d8552983f8c69c4ffa9517255a
parent6fe133889cc0305eb08775b56fe8d95d970b341b (diff)
intel: Fix segfault in glXSwapBuffers with no bound context
Calling glXSwapBuffers with no bound context causes segmentation fault in function intelDRI2Flush. All the gl calls should be ignored after setting the current context to null. So the contents of framebuffer stay unchanged. But the driver should not seg fault. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44614 Reported-by: Yi Sun <[email protected]> Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Tested-by: Yi Sun <[email protected]>
-rw-r--r--src/mesa/drivers/dri/intel/intel_screen.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index b0e800b7ecc..a08f3d12b67 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -115,13 +115,15 @@ intelDRI2Flush(__DRIdrawable *drawable)
GET_CURRENT_CONTEXT(ctx);
struct intel_context *intel = intel_context(ctx);
- if (intel->gen < 4)
- INTEL_FIREVERTICES(intel);
+ if (intel != NULL) {
+ if (intel->gen < 4)
+ INTEL_FIREVERTICES(intel);
- intel->need_throttle = true;
+ intel->need_throttle = true;
- if (intel->batch.used)
- intel_batchbuffer_flush(intel);
+ if (intel->batch.used)
+ intel_batchbuffer_flush(intel);
+ }
}
static const struct __DRI2flushExtensionRec intelFlushExtension = {