[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20976] trunk/blender/source/blender/ render/intern/source/texture.c: coverity issue CID: 596

Kent Mein mein at cs.umn.edu
Thu Jun 18 14:57:39 CEST 2009


Revision: 20976
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20976
Author:   sirdude
Date:     2009-06-18 14:57:39 +0200 (Thu, 18 Jun 2009)

Log Message:
-----------
coverity issue CID: 596
Checker: FORWARD_NULL (help)
File: base/src/source/blender/render/intern/source/texture.c
Function: do_lamp_tex
Description: Variable "dx" tracked as NULL was dereferenced.

Also found a typo the 3rd check was checking projx instead of projz
I also expanded the elses to set dyt as well as dxt.

Kent

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/texture.c

Modified: trunk/blender/source/blender/render/intern/source/texture.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/texture.c	2009-06-18 11:42:30 UTC (rev 20975)
+++ trunk/blender/source/blender/render/intern/source/texture.c	2009-06-18 12:57:39 UTC (rev 20976)
@@ -2354,7 +2354,7 @@
 	TexResult texres= {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL};
 	float *co = NULL, *dx = NULL, *dy = NULL, fact, stencilTin=1.0;
 	float texvec[3], dxt[3], dyt[3], tempvec[3];
-	int tex_nr, rgb= 0;
+	int i, tex_nr, rgb= 0;
 	
 	if (R.r.scemode & R_NO_TEX) return;
 	tex_nr= 0;
@@ -2430,21 +2430,33 @@
 			else texvec[2]= mtex->size[2]*(mtex->ofs[2]);
 			
 			if(shi->osatex) {
-				if(mtex->projx) {
-					dxt[0]= mtex->size[0]*dx[mtex->projx-1];
-					dyt[0]= mtex->size[0]*dy[mtex->projx-1];
+				if (!dx) {
+					for(i=0;i<2;i++) { 
+						dxt[i] = dyt[i] = 0.0;
+					}
+				} else {
+					if(mtex->projx) {
+						dxt[0]= mtex->size[0]*dx[mtex->projx-1];
+						dyt[0]= mtex->size[0]*dy[mtex->projx-1];
+					} else {
+						dxt[0]= 0.0;
+						dyt[0]= 0.0;
+					}
+					if(mtex->projy) {
+						dxt[1]= mtex->size[1]*dx[mtex->projy-1];
+						dyt[1]= mtex->size[1]*dy[mtex->projy-1];
+					} else {
+						dxt[1]= 0.0;
+						dyt[1]= 0.0;
+					}
+					if(mtex->projz) {
+						dxt[2]= mtex->size[2]*dx[mtex->projz-1];
+						dyt[2]= mtex->size[2]*dy[mtex->projz-1];
+					} else {
+						dxt[2]= 0.0;
+						dyt[2]= 0.0;
+					}
 				}
-				else dxt[0]= 0.0;
-				if(mtex->projy) {
-					dxt[1]= mtex->size[1]*dx[mtex->projy-1];
-					dyt[1]= mtex->size[1]*dy[mtex->projy-1];
-				}
-				else dxt[1]= 0.0;
-				if(mtex->projx) {
-					dxt[2]= mtex->size[2]*dx[mtex->projz-1];
-					dyt[2]= mtex->size[2]*dy[mtex->projz-1];
-				}
-				else dxt[2]= 0.0;
 			}
 			
 			/* texture */





More information about the Bf-blender-cvs mailing list