From 23ffdd79e8bd6901111cb5e99560b6a636105232 Mon Sep 17 00:00:00 2001 From: Quentin Quaadgras Date: Sat, 19 Apr 2025 10:45:12 +1200 Subject: [PATCH] fix gdextension Object/Node::to_string to check is_valid before returning the result at best, this results in an empty string, at worst, the result is never initialised when is_valid is false. --- core/object/object.cpp | 4 +++- scene/main/node.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/object/object.cpp b/core/object/object.cpp index 2753b29b29f..41108bacbbc 100644 --- a/core/object/object.cpp +++ b/core/object/object.cpp @@ -978,7 +978,9 @@ String Object::to_string() { String ret; GDExtensionBool is_valid; _extension->to_string(_extension_instance, &is_valid, &ret); - return ret; + if (is_valid) { + return ret; + } } return "<" + get_class() + "#" + itos(get_instance_id()) + ">"; } diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 59062228e70..5217e682bf6 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2864,7 +2864,9 @@ String Node::to_string() { String ret; GDExtensionBool is_valid; _get_extension()->to_string(_get_extension_instance(), &is_valid, &ret); - return ret; + if (is_valid) { + return ret; + } } return (get_name() ? String(get_name()) + ":" : "") + Object::to_string(); }