From eba2f2320cf1e0415897240b82d9ff892ce85ae7 Mon Sep 17 00:00:00 2001 From: Nicholas Bishop Date: Mon, 11 Jun 2012 11:00:58 +0000 Subject: Fix invalid array index in armature_deform_verts(). Check that the def_nr is non-negative before using as index. Fixes bug [#31700] Crash when opening .blend file on 64bit environment --- source/blender/blenkernel/intern/armature.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/armature.c') diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 5ad81db1979..9af1d5f52c4 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -986,7 +986,7 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm, float for (j = dvert->totweight; j != 0; j--, dw++) { const int index = dw->def_nr; - if (index < defbase_tot && (pchan = defnrToPC[index])) { + if (index >= 0 && index < defbase_tot && (pchan = defnrToPC[index])) { float weight = dw->weight; Bone *bone = pchan->bone; pdef_info = pdef_info_array + defnrToPCIndex[index]; -- cgit v1.2.3