From 7a84b71eb2599a6bcc40c231e5f9b9618d1cfec5 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sat, 19 Dec 2009 18:19:28 -0800 Subject: [PATCH] Fixed crashes from rare plugin loading errors (bug 4153, r=ds). --- core/PluginSys.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/PluginSys.cpp b/core/PluginSys.cpp index 9337267a..e1e1d98d 100644 --- a/core/PluginSys.cpp +++ b/core/PluginSys.cpp @@ -1125,7 +1125,7 @@ void CPluginManager::LoadAutoPlugin(const char *plugin) { g_Logger.LogError("[SM] Failed to load plugin \"%s\": %s", plugin, error); pl->SetErrorState( - pl->GetStatus() == Plugin_BadLoad ? Plugin_BadLoad : Plugin_Failed, + pl->GetStatus() <= Plugin_Created ? Plugin_BadLoad : pl->GetStatus(), "%s", error); } @@ -2321,7 +2321,10 @@ void CPluginManager::OnRootConsoleCommand(const char *cmdname, const CCommand &c char name[PLATFORM_MAX_PATH]; const sm_plugininfo_t *info = pl->GetPublicInfo(); - strcpy(name, (IS_STR_FILLED(info->name)) ? info->name : pl->GetFilename()); + if (pl->GetStatus() <= Pl_Paused) + strcpy(name, (IS_STR_FILLED(info->name)) ? info->name : pl->GetFilename()); + else + strcpy(name, pl->GetFilename()); if (ReloadPlugin(pl)) {