[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