diff options
author | Anuj Phogat <[email protected]> | 2012-01-11 15:26:10 -0800 |
---|---|---|
committer | Anuj Phogat <[email protected]> | 2012-01-16 15:07:17 -0800 |
commit | dd7220652e65a8a23e7739eeee687f3d6a865b80 (patch) | |
tree | ab07784d8fa7a6d8552983f8c69c4ffa9517255a /src | |
parent | 6fe133889cc0305eb08775b56fe8d95d970b341b (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]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_screen.c | 12 |
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 = { |