From a3e2c8f31f0c5d8d5c1c76e33a572c7be8938573 Mon Sep 17 00:00:00 2001 From: nobled Date: Fri, 6 May 2011 09:39:24 +0200 Subject: glx: Check flush DRI extension version at runtime The DRI driver itself might not have version 3 of the DRI2 flush extension, in which case this would've pointed to out of bounds memory... --- src/glx/dri2_glx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/glx/dri2_glx.c') diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index fc0237a..b9f6f7f 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -679,7 +679,7 @@ dri2InvalidateBuffers(Display *dpy, XID drawable) struct dri2_drawable *pdp = (struct dri2_drawable *) pdraw; #if __DRI2_FLUSH_VERSION >= 3 - if (pdraw && psc->f) + if (pdraw && psc->f && psc->f->base.version >= 3 && psc->f->invalidate) psc->f->invalidate(pdp->driDrawable); #endif } @@ -702,7 +702,8 @@ dri2_bind_tex_image(Display * dpy, psc = (struct dri2_screen *) base->psc; #if __DRI2_FLUSH_VERSION >= 3 - if (!pdp->invalidateAvailable && psc->f) + if (!pdp->invalidateAvailable && psc->f && + psc->f->base.version >= 3 && psc->f->invalidate) psc->f->invalidate(pdraw->driDrawable); #endif -- cgit v1.1