diff options
author | Mikael Hermansson <mikael@hermansson.io> | 2022-10-10 23:29:04 +0200 |
---|---|---|
committer | Mikael Hermansson <mikael@hermansson.io> | 2022-10-11 00:59:35 +0200 |
commit | cddaf50ff814c2633a310eec1f1e716ddd4170b5 (patch) | |
tree | 446f3ab6d536c3cfb7317f37f8c3fe76cc1ff1da /src | |
parent | 6696bebfa6b57d529172bf6ad679ed1b793fccb3 (diff) | |
download | redot-cpp-cddaf50ff814c2633a310eec1f1e716ddd4170b5.tar.gz |
Fix use-after-free when deleting objects from extension terminator
Diffstat (limited to 'src')
-rw-r--r-- | src/godot.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/godot.cpp b/src/godot.cpp index 7e7f2eb..356e7f1 100644 --- a/src/godot.cpp +++ b/src/godot.cpp @@ -79,11 +79,12 @@ void GDExtensionBinding::initialize_level(void *userdata, GDNativeInitialization void GDExtensionBinding::deinitialize_level(void *userdata, GDNativeInitializationLevel p_level) { ClassDB::current_level = p_level; - ClassDB::deinitialize(p_level); if (terminate_callback) { terminate_callback(static_cast<ModuleInitializationLevel>(p_level)); } + + ClassDB::deinitialize(p_level); } void GDExtensionBinding::InitObject::register_initializer(Callback p_init) const { |