Mesa (master): glx: Check flush DRI extension version at runtime

Michel Dänzer daenzer at kemper.freedesktop.org
Fri May 6 07:44:39 UTC 2011


Module: Mesa
Branch: master
Commit: a3e2c8f31f0c5d8d5c1c76e33a572c7be8938573
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3e2c8f31f0c5d8d5c1c76e33a572c7be8938573

Author: nobled <nobled at dreamwidth.org>
Date:   Fri May  6 09:39:24 2011 +0200

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 files changed, 3 insertions(+), 2 deletions(-)

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
 




More information about the mesa-commit mailing list