Mesa (master): tdfx: Add asserts to check for null pointer dereferences.

Vinson Lee vlee at kemper.freedesktop.org
Sat Feb 27 23:08:16 UTC 2010


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

Author: Vinson Lee <vlee at vmware.com>
Date:   Sat Feb 27 15:07:30 2010 -0800

tdfx: Add asserts to check for null pointer dereferences.

---

 src/mesa/drivers/dri/tdfx/tdfx_screen.c   |    2 ++
 src/mesa/drivers/dri/tdfx/tdfx_texstate.c |    8 ++++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/tdfx/tdfx_screen.c b/src/mesa/drivers/dri/tdfx/tdfx_screen.c
index d554bcd..26de095 100644
--- a/src/mesa/drivers/dri/tdfx/tdfx_screen.c
+++ b/src/mesa/drivers/dri/tdfx/tdfx_screen.c
@@ -295,6 +295,8 @@ tdfxSwapBuffers( __DRIdrawable *driDrawPriv )
    }
 #endif
 
+   assert(fxMesa);
+
    if (fxMesa->scissoredClipRects) {
       /* restore clip rects without scissor box */
       fxMesa->Glide.grDRIPosition( driDrawPriv->x, driDrawPriv->y,
diff --git a/src/mesa/drivers/dri/tdfx/tdfx_texstate.c b/src/mesa/drivers/dri/tdfx/tdfx_texstate.c
index 6658b4d..b04f48c 100644
--- a/src/mesa/drivers/dri/tdfx/tdfx_texstate.c
+++ b/src/mesa/drivers/dri/tdfx/tdfx_texstate.c
@@ -2142,11 +2142,13 @@ tdfxUpdateTextureBinding( GLcontext *ctx )
        ctx->Texture.Unit[0]._ReallyEnabled == 0) {
       /* Only unit 0 2D enabled */
       if (shared->umaTexMemory) {
+         assert(ti0);
          fxMesa->TexSource[0].StartAddress = ti0->tm[0]->startAddr;
          fxMesa->TexSource[0].EvenOdd = GR_MIPMAPLEVELMASK_BOTH;
          fxMesa->TexSource[0].Info = &(ti0->info);
       }
       else {
+         assert(ti0);
          if (ti0->LODblend && ti0->whichTMU == TDFX_TMU_SPLIT) {
             fxMesa->TexSource[0].StartAddress = ti0->tm[TDFX_TMU0]->startAddr;
             fxMesa->TexSource[0].EvenOdd = GR_MIPMAPLEVELMASK_ODD;
@@ -2185,20 +2187,26 @@ tdfxUpdateTextureBinding( GLcontext *ctx )
       /* Both 2D enabled */
       if (shared->umaTexMemory) {
          const FxU32 tmu0 = 0, tmu1 = 1;
+
+         assert(ti0);
          fxMesa->TexSource[tmu0].StartAddress = ti0->tm[0]->startAddr;
          fxMesa->TexSource[tmu0].EvenOdd = GR_MIPMAPLEVELMASK_BOTH;
          fxMesa->TexSource[tmu0].Info = &(ti0->info);
 
+         assert(ti1);
          fxMesa->TexSource[tmu1].StartAddress = ti1->tm[0]->startAddr;
          fxMesa->TexSource[tmu1].EvenOdd = GR_MIPMAPLEVELMASK_BOTH;
          fxMesa->TexSource[tmu1].Info = &(ti1->info);
       }
       else {
          const FxU32 tmu0 = 0, tmu1 = 1;
+
+         assert(ti0);
          fxMesa->TexSource[tmu0].StartAddress = ti0->tm[tmu0]->startAddr;
          fxMesa->TexSource[tmu0].EvenOdd = GR_MIPMAPLEVELMASK_BOTH;
          fxMesa->TexSource[tmu0].Info = &(ti0->info);
 
+         assert(ti1);
          fxMesa->TexSource[tmu1].StartAddress = ti1->tm[tmu1]->startAddr;
          fxMesa->TexSource[tmu1].EvenOdd = GR_MIPMAPLEVELMASK_BOTH;
          fxMesa->TexSource[tmu1].Info = &(ti1->info);




More information about the mesa-commit mailing list