From 7426b4d448102a312009b133497af55214e2b4c5 Mon Sep 17 00:00:00 2001 From: ACB Date: Fri, 8 Mar 2024 07:32:31 +0100 Subject: [PATCH] Fix user after free in `GDScriptLanguage::debug_get_globals` --- modules/gdscript/gdscript_editor.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index babd2c17721..3dcfc25f8aa 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -402,7 +402,9 @@ void GDScriptLanguage::debug_get_globals(List *p_globals, List } const Variant &var = gl_array[E.value]; - if (Object *obj = var) { + bool freed = false; + const Object *obj = var.get_validated_object_with_check(freed); + if (obj && !freed) { if (Object::cast_to(obj)) { continue; }