Procházet zdrojové kódy

Fix user after free in `GDScriptLanguage::debug_get_globals`

ACB před 1 rokem
rodič
revize
7426b4d448
1 změnil soubory, kde provedl 3 přidání a 1 odebrání
  1. 3 1
      modules/gdscript/gdscript_editor.cpp

+ 3 - 1
modules/gdscript/gdscript_editor.cpp

@@ -402,7 +402,9 @@ void GDScriptLanguage::debug_get_globals(List<String> *p_globals, List<Variant>
 		}
 
 		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<GDScriptNativeClass>(obj)) {
 				continue;
 			}