Bugfix #25437
authorTon Roosendaal <ton@blender.org>
Sat, 1 Jan 2011 13:49:22 +0000 (13:49 +0000)
committerTon Roosendaal <ton@blender.org>
Sat, 1 Jan 2011 13:49:22 +0000 (13:49 +0000)
commitd7c51aa3eb50fd173664b724c1d289f3faf989cd
treeea31f25bf99ffd8fad0be0cf70dfba515980fe64
parent7040c89af052e4983e2d71b00ff11c1d0b9cd8cf
Bugfix #25437

Crash in Bezier animation (inserting keys on control points in
curve object). The animation rna paths were not fixed after an
editmode session, which got fixed 2 weeks ago, but for all older
binaries the issue can still pop up.

The crash happened because the RNA array-itterator was not doing
a boundary check, even whilst the array size was passed on to the
itterator callbacks. With rna then writing far outside of valid
memory, very bad and unpredictable corruptions happen.

I've added a range check now, and a decent print to denote the
issue. An assert quit is useless, since a tab-tab on curve objects
will fix the channels nicely.

Example of warning print:
Array itterator out of range: Spline_bezier_points_lookup_int (index 30 range 2)
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_internal.h