[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13730] trunk/blender/source/blender/src/ meshtools.c: meshes with nan verts could crash blender when building as mesh octree

Campbell Barton ideasman42 at gmail.com
Sun Feb 17 19:50:45 CET 2008


Revision: 13730
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13730
Author:   campbellbarton
Date:     2008-02-17 19:50:45 +0100 (Sun, 17 Feb 2008)

Log Message:
-----------
meshes with nan verts could crash blender when building as mesh octree

Modified Paths:
--------------
    trunk/blender/source/blender/src/meshtools.c

Modified: trunk/blender/source/blender/src/meshtools.c
===================================================================
--- trunk/blender/source/blender/src/meshtools.c	2008-02-17 18:33:20 UTC (rev 13729)
+++ trunk/blender/source/blender/src/meshtools.c	2008-02-17 18:50:45 UTC (rev 13730)
@@ -650,6 +650,13 @@
 	float fx, fy, fz;
 	int vx, vy, vz;
 	
+	if (isnan(co[0]) || !finite(co[0]) ||
+		isnan(co[1]) || !finite(co[1]) ||
+		isnan(co[2]) || !finite(co[2])
+	) {
+		return;
+	}
+	
 	fx= (co[0]-offs[0])/div[0];
 	fy= (co[1]-offs[1])/div[1];
 	fz= (co[2]-offs[2])/div[2];
@@ -739,7 +746,7 @@
 			mesh_octree_table(ob, NULL, 's');
 	   
 		if(MeshOctree.table) {
-			Mesh *me= ob->data;
+			Mesh *me= ob->data;mesh_octree_table
 			bt= MeshOctree.table + mesh_octree_get_base_offs(co, MeshOctree.offs, MeshOctree.div);
 			if(ob==G.obedit)
 				return mesh_octree_find_index(bt, NULL, NULL, co);
@@ -799,7 +806,7 @@
 		
 		if(ob==G.obedit) {
 			EditVert *eve;
-			
+
 			for(eve= G.editMesh->verts.first; eve; eve= eve->next) {
 				mesh_octree_add_nodes(MeshOctree.table, eve->co, MeshOctree.offs, MeshOctree.div, (long)(eve));
 			}
@@ -861,6 +868,13 @@
 	float vec[3];
 	long poinval;
 	
+	/* ignore nan verts */
+	if (isnan(co[0]) || !finite(co[0]) ||
+		isnan(co[1]) || !finite(co[1]) ||
+		isnan(co[2]) || !finite(co[2])
+	   )
+		return NULL;
+	
 	vec[0]= -co[0];
 	vec[1]= co[1];
 	vec[2]= co[2];





More information about the Bf-blender-cvs mailing list