Merge pull request #891 from mihe/classdb-deinit

Fix use-after-free when deleting objects from extension terminator
pull/888/head
Rémi Verschelde 2022-10-11 08:22:50 +02:00 committed by GitHub
commit 779eaba428
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -79,11 +79,12 @@ void GDExtensionBinding::initialize_level(void *userdata, GDNativeInitialization
void GDExtensionBinding::deinitialize_level(void *userdata, GDNativeInitializationLevel p_level) { void GDExtensionBinding::deinitialize_level(void *userdata, GDNativeInitializationLevel p_level) {
ClassDB::current_level = p_level; ClassDB::current_level = p_level;
ClassDB::deinitialize(p_level);
if (terminate_callback) { if (terminate_callback) {
terminate_callback(static_cast<ModuleInitializationLevel>(p_level)); terminate_callback(static_cast<ModuleInitializationLevel>(p_level));
} }
ClassDB::deinitialize(p_level);
} }
void GDExtensionBinding::InitObject::register_initializer(Callback p_init) const { void GDExtensionBinding::InitObject::register_initializer(Callback p_init) const {