Commit: e1dd8d72a3e080029d2eecf336f018f14529694a Author: Maxime Casas Date: Fri Jun 11 16:26:01 2021 +0200 Branches: asset-browser-poselib https://developer.blender.org/rBe1dd8d72a3e080029d2eecf336f018f14529694a
Fix T89033: segfault reordering animation channels Fix segmentation fault that can occur when reordering animation channels. Under some specific conditions, the list "act->curves" is empty in the "join_groups_action_temp" function. In particular, this happens when a scene contains an action that has not been pushed down, and with no keyframe in it. Reviewed By: sybren Differential Revision: https://developer.blender.org/D11569 =================================================================== M source/blender/editors/animation/anim_channels_edit.c =================================================================== diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 64082b08da9..6c6fab13b7a 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1349,10 +1349,12 @@ static void join_groups_action_temp(bAction *act) /* BLI_movelisttolist() doesn't touch first->prev and last->next pointers in its "dst" list. * Ensure that after the reshuffling the list is properly terminated. */ - FCurve *act_fcurves_first = act->curves.first; - act_fcurves_first->prev = NULL; - FCurve *act_fcurves_last = act->curves.last; - act_fcurves_last->next = NULL; + if (!BLI_listbase_is_empty(&act->curves)) { + FCurve *act_fcurves_first = act->curves.first; + act_fcurves_first->prev = NULL; + FCurve *act_fcurves_last = act->curves.last; + act_fcurves_last->next = NULL; + } } /* Change the order of anim-channels within action _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs