Fix: VSE: use after free in for loop

Same fix as 2a32b26415 - initialize range before using it in for loop

Pull Request: https://projects.blender.org/blender/blender/pulls/129835
This commit is contained in:
Richard Antalik
2024-11-06 05:24:49 +01:00
committed by Richard Antalik
parent 40162873e0
commit 9840dd233c

View File

@@ -6,6 +6,7 @@
* \ingroup spseq
*/
#include "BLI_map.hh"
#include "MEM_guardedalloc.h"
#include "BLI_set.hh"
@@ -359,7 +360,9 @@ static bool freeze_frame_add_from_retiming_selection(const bContext *C,
Scene *scene = CTX_data_scene(C);
bool success = false;
for (auto item : SEQ_retiming_selection_get(SEQ_editing_get(scene)).items()) {
blender::Map selection = SEQ_retiming_selection_get(SEQ_editing_get(scene));
for (auto item : selection.items()) {
const int timeline_frame = SEQ_retiming_key_timeline_frame_get(scene, item.value, item.key);
success |= freeze_frame_add_new_for_seq(C, op, item.value, timeline_frame, duration);
SEQ_relations_invalidate_cache_raw(scene, item.value);
@@ -463,7 +466,9 @@ static bool transition_add_from_retiming_selection(const bContext *C,
Scene *scene = CTX_data_scene(C);
bool success = false;
for (auto item : SEQ_retiming_selection_get(SEQ_editing_get(scene)).items()) {
blender::Map selection = SEQ_retiming_selection_get(SEQ_editing_get(scene));
for (auto item : selection.items()) {
const int timeline_frame = SEQ_retiming_key_timeline_frame_get(scene, item.value, item.key);
success |= transition_add_new_for_seq(C, op, item.value, timeline_frame, duration);
}