1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-23 16:54:14 +01:00

Fix double plugin unload crash on `meta retry`

This commit is contained in:
GAMMACASE 2025-02-14 04:30:16 +03:00 committed by GitHub
commit a4f4f0ebe0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -320,8 +320,9 @@ bool CPluginManager::Retry(PluginId id, char *error, size_t len)
} }
else else
{ {
//don't really care about the buffer here //We don't need to handle any extra unloading,
_Unload(pl, true, buffer, sizeof(buffer)-1); //as if plugin has failed to load it would be
//unloaded by _Load() method itself
//We just wasted an id... reclaim it //We just wasted an id... reclaim it
m_LastId--; m_LastId--;
@ -400,6 +401,7 @@ struct Unloader : public SourceHook::Impl::UnloadListener
if (plugin_->m_UnloadFn != NULL) if (plugin_->m_UnloadFn != NULL)
plugin_->m_UnloadFn(); plugin_->m_UnloadFn();
if(plugin_->m_Lib)
dlclose(plugin_->m_Lib); dlclose(plugin_->m_Lib);
if (destroy_) if (destroy_)