[Mesa-dev] [PATCH] Avoid null pointer dereference when glXSwapBuffers is called with no bound context
Anuj Phogat
anuj.phogat at gmail.com
Wed Jan 11 17:06:01 PST 2012
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 <yi.sun at intel.com>
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
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 ce96ddd..03c2a1e 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 = {
--
1.7.7.4
More information about the mesa-dev
mailing list