[Mesa-dev] [Mesa-stable] [PATCH] i965: Fix crash when calling glViewport with no surface bound

Nanley Chery nanleychery at gmail.com
Mon Dec 14 15:05:26 PST 2015


On Thu, Dec 10, 2015 at 01:08:37PM -0800, Nanley Chery wrote:
> On Tue, Dec 08, 2015 at 04:35:57PM +0000, Neil Roberts wrote:
> > If EGL_KHR_surfaceless_context is used then glViewport can be called
> > with NULL for the draw and read surfaces. This was previously causing
> > a crash because the i965 driver tries to use this point to invalidate
> > the surfaces and it was derferencing the NULL pointer.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93257
> > Cc: Nanley Chery <nanley.g.chery at intel.com>
> > Cc: "11.1" <mesa-stable at lists.freedesktop.org>
> > ---
> 
> Thanks for the fix! I'll be able to give this a better look next week, so
> feel free to push if you receive an Rb before then.
> 
> Tested-by: Nanley Chery <nanley.g.chery at intel.com>


While I can't say that I know all the interactions with framebuffers,
I can't see a use-case for segfaulting on a NULL surface.

Reviewed-by: Nanley Chery <nanley.g.chery at intel.com>

> 
> >
> > I've also posted a Piglit test for this here:
> >
> > http://patchwork.freedesktop.org/patch/67356/
> >
> > src/mesa/drivers/dri/i965/brw_context.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_context.c
> b/src/mesa/drivers/dri/i965/brw_context.c
> > index 7d7643c..5374bad 100644
> > --- a/src/mesa/drivers/dri/i965/brw_context.c
> > +++ b/src/mesa/drivers/dri/i965/brw_context.c
> > @@ -159,8 +159,10 @@ intel_viewport(struct gl_context *ctx)
> > __DRIcontext *driContext = brw->driContext;
> >
> > if (_mesa_is_winsys_fbo(ctx->DrawBuffer)) {
> > - dri2InvalidateDrawable(driContext->driDrawablePriv);
> > - dri2InvalidateDrawable(driContext->driReadablePriv);
> > + if (driContext->driDrawablePriv)
> > + dri2InvalidateDrawable(driContext->driDrawablePriv);
> > + if (driContext->driReadablePriv)
> > + dri2InvalidateDrawable(driContext->driReadablePriv);
> > }
> > }
> >
> > --
> > 1.9.3
> >
> > _______________________________________________
> > mesa-stable mailing list
> > mesa-stable at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-stable


More information about the mesa-dev mailing list