[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47736] trunk/blender/source/blender/ blenkernel/intern/armature.c: Fix invalid array index in armature_deform_verts().

Sergey Sharybin sergey.vfx at gmail.com
Mon Jun 11 13:31:56 CEST 2012


Well, personally i wouldn't mind keeping this -- at least it helps open
file and likely reconfigure some
armatures so they're not buggy again.

But not sure about how to fix that issue which lead to such a problem.
Probably the only case is to ask
users to try to reproduce the issue again. At least that's what we're doing
when some meshes are
corrupted..

On Mon, Jun 11, 2012 at 5:10 PM, Nicholas Bishop
<nicholasbishop at gmail.com>wrote:

> Makes sense. Do you reckon this is an acceptable hack for this
> specific instance, or should I revert the commit?
>
> -Nicholas
>
> On Mon, Jun 11, 2012 at 7:04 AM, Sergey Sharybin <sergey.vfx at gmail.com>
> wrote:
> > Hey Nick!
> >
> > I've been thinking about such a fix, but that's not actually full fix.
> > There're still lot's of places in blender who assumes
> > def_nr is not negative. And the real fix would actually be to figure out
> > why this index became negative due to it
> > shouldn't actually.
> >
> > Checked the code, but can't find place where it could happen.
> >
> > On Mon, Jun 11, 2012 at 5:01 PM, Nicholas Bishop
> > <nicholasbishop at gmail.com>wrote:
> >
> >> Revision: 47736
> >>
> >>
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47736
> >> Author:   nicholasbishop
> >> Date:     2012-06-11 11:00:58 +0000 (Mon, 11 Jun 2012)
> >> Log Message:
> >> -----------
> >> 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
> >>
> >> Modified Paths:
> >> --------------
> >>    trunk/blender/source/blender/blenkernel/intern/armature.c
> >>
> >> Modified: trunk/blender/source/blender/blenkernel/intern/armature.c
> >> ===================================================================
> >> --- trunk/blender/source/blender/blenkernel/intern/armature.c
> 2012-06-11
> >> 10:31:24 UTC (rev 47735)
> >> +++ trunk/blender/source/blender/blenkernel/intern/armature.c
> 2012-06-11
> >> 11:00:58 UTC (rev 47736)
> >> @@ -986,7 +986,7 @@
> >>
> >>                        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];
> >>
> >> _______________________________________________
> >> Bf-blender-cvs mailing list
> >> Bf-blender-cvs at blender.org
> >> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
> >>
> >
> >
> >
> > --
> > With best regards, Sergey Sharybin
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>



-- 
With best regards, Sergey Sharybin


More information about the Bf-committers mailing list