And finally some further functions I missed...

All three patches
are
Signed-off-by: Niels Ole Salscheider

Kind regards

Ole

On Wednesday 28
July 2010 10:32:06 Niels Ole Salscheider wrote:
> Hello,
> 
> there's
another place where the returned pointer is not checked in
> src/glx/dri2.c
(see attachment). This might fix bug 29148.
> 
> Kind
> regards
> 
> Ole
From 323bfe5094f87fdd836566eb5dd9e523299baf03 Mon Sep 17 00:00:00 2001
From: Niels Ole Salscheider <niels_...@salscheider-online.de>
Date: Wed, 28 Jul 2010 16:39:01 +0200
Subject: [PATCH] GetGLXDRIDrawable may return NULL

---
 src/glx/glxcmds.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index 0782b1d..2dad90a 100644
--- a/src/glx/glxcmds.c
+++ b/src/glx/glxcmds.c
@@ -1962,6 +1962,9 @@ __glXSwapIntervalSGI(int interval)
    if (gc->driContext && psc->driScreen && psc->driScreen->setSwapInterval) {
       __GLXDRIdrawable *pdraw =
 	 GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable);
+      if (pdraw == NULL)
+         return False;
+
       psc->driScreen->setSwapInterval(pdraw, interval);
       return 0;
    }
@@ -2008,6 +2011,9 @@ __glXSwapIntervalMESA(unsigned int interval)
       if (psc->driScreen && psc->driScreen->setSwapInterval) {
          __GLXDRIdrawable *pdraw =
 	    GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable);
+	 if (pdraw == NULL)
+	    return False;
+
 	 return psc->driScreen->setSwapInterval(pdraw, interval);
       }
    }
@@ -2030,6 +2036,9 @@ __glXGetSwapIntervalMESA(void)
       if (psc->driScreen && psc->driScreen->getSwapInterval) {
          __GLXDRIdrawable *pdraw =
 	    GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable);
+	 if (pdraw == NULL)
+	    return False;
+
 	 return psc->driScreen->getSwapInterval(pdraw);
       }
    }
@@ -2064,6 +2073,8 @@ __glXGetVideoSyncSGI(unsigned int *count)
    psc = GetGLXScreenConfigs(gc->currentDpy, gc->screen);
 #ifdef GLX_DIRECT_RENDERING
    pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable);
+   if (pdraw == NULL)
+      return False;
 #endif
 
    /* FIXME: Looking at the GLX_SGI_video_sync spec in the extension registry,
@@ -2106,6 +2117,8 @@ __glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
    psc = GetGLXScreenConfigs( gc->currentDpy, gc->screen);
 #ifdef GLX_DIRECT_RENDERING
    pdraw = GetGLXDRIDrawable(gc->currentDpy, gc->currentDrawable);
+   if (pdraw == NULL)
+      return False;
 #endif
 
 #ifdef GLX_DIRECT_RENDERING
-- 
1.7.2

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to