From 6a0c0d0da9b27d2868f993dcd71220bf2bd7e18f Mon Sep 17 00:00:00 2001 From: Philippe Normand Date: Sun, 11 Apr 2021 13:27:56 +0100 Subject: [PATCH] i915: Prevent invalid framebuffer usage When a surfaceless context is in use, driDrawablePriv might be NULL, so needs to be checked before calling dri2InvalidateDrawable. Same for read calls. Reviewed-by: Adam Jackson Reviewed-by: Eleni Maria Stea Closes https://gitlab.freedesktop.org/mesa/mesa/-/issues/778 Part-of: --- src/mesa/drivers/dri/i915/intel_buffers.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i915/intel_buffers.c b/src/mesa/drivers/dri/i915/intel_buffers.c index 83d59edb6fa..a4340fff6bb 100644 --- a/src/mesa/drivers/dri/i915/intel_buffers.c +++ b/src/mesa/drivers/dri/i915/intel_buffers.c @@ -62,7 +62,8 @@ intelDrawBuffer(struct gl_context * ctx) * time, invalidate our DRI drawable so we'll ask for new buffers * (including the fake front) before we start rendering again. */ - dri2InvalidateDrawable(intel->driContext->driDrawablePriv); + if (intel->driContext->driDrawablePriv) + dri2InvalidateDrawable(intel->driContext->driDrawablePriv); } intel_draw_buffer(ctx); @@ -79,7 +80,8 @@ intelReadBuffer(struct gl_context * ctx, GLenum mode) * time, invalidate our DRI drawable so we'll ask for new buffers * (including the fake front) before we start reading again. */ - dri2InvalidateDrawable(intel->driContext->driReadablePriv); + if (intel->driContext->driReadablePriv) + dri2InvalidateDrawable(intel->driContext->driReadablePriv); } }