tdfx: Add asserts to check for null pointer dereferences.
authorVinson Lee <vlee@vmware.com>
Sat, 27 Feb 2010 23:07:30 +0000 (15:07 -0800)
committerVinson Lee <vlee@vmware.com>
Sat, 27 Feb 2010 23:07:30 +0000 (15:07 -0800)
src/mesa/drivers/dri/tdfx/tdfx_screen.c
src/mesa/drivers/dri/tdfx/tdfx_texstate.c

index d554bcdc92cea058b23eaae0f4a15fb771dec86b..26de09503ad96a080a34910b0cffe754cf835229 100644 (file)
@@ -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,
index 6658b4d0c3e9b427455e040a751036423239ed08..b04f48c7a77182c2b4a0a39e7757de5620d62811 100644 (file)
@@ -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);