From 4848bf4fd8ad221ce1a70c7085f1c14b154e4cca Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Sat, 23 Mar 2024 19:54:21 +0800 Subject: [PATCH] Fix heap-use-after-free when converting scene group to global --- editor/groups_editor.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp index ba7b627207..1a229d5f3c 100644 --- a/editor/groups_editor.cpp +++ b/editor/groups_editor.cpp @@ -157,10 +157,14 @@ void GroupsEditor::_update_groups() { _load_scene_groups(scene_root_node); - for (const KeyValue &E : scene_groups) { - if (global_groups.has(E.key)) { - scene_groups.erase(E.key); + for (HashMap::Iterator E = scene_groups.begin(); E;) { + HashMap::Iterator next = E; + ++next; + + if (global_groups.has(E->key)) { + scene_groups.erase(E->key); } + E = next; } updating_groups = false;