IK plugin range check was wrong, could do out of bounds reads.

This commit is contained in:
Campbell Barton 2013-06-27 19:52:50 +00:00
parent e2e487a877
commit d1f4827a40
2 changed files with 4 additions and 3 deletions

View File

@ -468,8 +468,8 @@ static int separate_armature_exec(bContext *C, wmOperator *UNUSED(op))
/* TODO: use context iterators for this? */
CTX_DATA_BEGIN(C, Base *, base, visible_bases)
{
if (base->object == obedit) base->flag |= 1;
else base->flag &= ~1;
if (base->object == obedit) base->flag |= SELECT;
else base->flag &= ~SELECT;
}
CTX_DATA_END;

View File

@ -86,12 +86,13 @@ static IKPlugin ikplugin_tab[] = {
static IKPlugin *get_plugin(bPose *pose)
{
if (!pose || pose->iksolver < 0 || pose->iksolver > (sizeof(ikplugin_tab) / sizeof(IKPlugin) - 2))
if (!pose || pose->iksolver < 0 || pose->iksolver >= ((sizeof(ikplugin_tab) / sizeof(IKPlugin)) - 1))
return NULL;
return &ikplugin_tab[pose->iksolver];
}
/*----------------------------------------*/
/* Plugin API */