From 6121c098c8a3e9ad068531fbe0301af69846c291 Mon Sep 17 00:00:00 2001 From: Asher Baker Date: Sun, 27 May 2012 01:51:03 +0100 Subject: [PATCH] Fixed possible crash when reloading a plugin with an invalid binary (bug 5288, r=psychonic). --- core/PluginSys.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core/PluginSys.cpp b/core/PluginSys.cpp index 9af84434..119cc87a 100644 --- a/core/PluginSys.cpp +++ b/core/PluginSys.cpp @@ -1005,11 +1005,14 @@ LoadRes CPluginManager::_LoadPlugin(CPlugin **_plugin, const char *path, bool de pPlugin->m_pRuntime = g_pSourcePawn2->LoadPlugin(co, fullpath, &err); if (pPlugin->m_pRuntime == NULL) { - UTIL_Format(error, - maxlength, - "Unable to load plugin (error %d: %s)", - err, - g_pSourcePawn2->GetErrorString(err)); + if (error) + { + UTIL_Format(error, + maxlength, + "Unable to load plugin (error %d: %s)", + err, + g_pSourcePawn2->GetErrorString(err)); + } pPlugin->m_status = Plugin_BadLoad; } else @@ -1020,7 +1023,10 @@ LoadRes CPluginManager::_LoadPlugin(CPlugin **_plugin, const char *path, bool de } else { - UTIL_Format(error, maxlength, "%s", pPlugin->m_errormsg); + if (error) + { + UTIL_Format(error, maxlength, "%s", pPlugin->m_errormsg); + } } } }