From 9ba1363d86755b715a9b41e6bd51fa5ddd94eb35 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 25 Aug 2015 23:58:43 -0400 Subject: [PATCH] Remove Format/FormatArgs from the core/logic bridge. --- core/logic/DebugReporter.cpp | 7 ++-- core/logic/ExtensionSys.cpp | 9 +++-- core/logic/GameConfigs.cpp | 13 ++++--- core/logic/HandleSys.cpp | 3 +- core/logic/Logger.cpp | 11 +++--- core/logic/PhraseCollection.cpp | 3 +- core/logic/PluginSys.cpp | 69 +++++++++++++++++---------------- core/logic/ProfileTools.cpp | 3 +- core/logic/TextParsers.cpp | 9 +++-- core/logic/Translator.cpp | 5 ++- core/logic/intercom.h | 4 +- core/logic/smn_banning.cpp | 13 ++++--- core/logic/smn_lang.cpp | 3 +- core/logic/smn_string.cpp | 5 ++- core/logic_bridge.cpp | 2 - 15 files changed, 84 insertions(+), 75 deletions(-) diff --git a/core/logic/DebugReporter.cpp b/core/logic/DebugReporter.cpp index 4b1199f1..01293498 100644 --- a/core/logic/DebugReporter.cpp +++ b/core/logic/DebugReporter.cpp @@ -33,6 +33,7 @@ #include #include "DebugReporter.h" #include "Logger.h" +#include DebugReport g_DbgReporter; @@ -47,7 +48,7 @@ void DebugReport::OnDebugSpew(const char *msg, ...) char buffer[512]; va_start(ap, msg); - smcore.FormatArgs(buffer, sizeof(buffer), msg, ap); + ke::SafeVsprintf(buffer, sizeof(buffer), msg, ap); va_end(ap); g_Logger.LogMessage("[SM] %s", buffer); @@ -65,7 +66,7 @@ void DebugReport::GenerateError(IPluginContext *ctx, cell_t func_idx, int err, c void DebugReport::GenerateErrorVA(IPluginContext *ctx, cell_t func_idx, int err, const char *message, va_list ap) { char buffer[512]; - smcore.FormatArgs(buffer, sizeof(buffer), message, ap); + ke::SafeVsprintf(buffer, sizeof(buffer), message, ap); const char *plname = pluginsys->FindPluginByContext(ctx->GetContext())->GetFilename(); const char *error = g_pSourcePawn2->GetErrorString(err); @@ -99,7 +100,7 @@ void DebugReport::GenerateCodeError(IPluginContext *pContext, uint32_t code_addr char buffer[512]; va_start(ap, message); - smcore.FormatArgs(buffer, sizeof(buffer), message, ap); + ke::SafeVsprintf(buffer, sizeof(buffer), message, ap); va_end(ap); const char *plname = pluginsys->FindPluginByContext(pContext->GetContext())->GetFilename(); diff --git a/core/logic/ExtensionSys.cpp b/core/logic/ExtensionSys.cpp index be327768..0394e90c 100644 --- a/core/logic/ExtensionSys.cpp +++ b/core/logic/ExtensionSys.cpp @@ -36,6 +36,7 @@ #include "common_logic.h" #include "PluginSys.h" #include +#include CExtensionManager g_Extensions; IdentityType_t g_ExtType; @@ -567,7 +568,7 @@ void CExtensionManager::TryAutoload() } char file[PLATFORM_MAX_PATH]; - len = smcore.Format(file, sizeof(file), "%s", lfile); + len = ke::SafeSprintf(file, sizeof(file), "%s", lfile); strcpy(&file[len - 9], ".ext"); LoadAutoExtension(file); @@ -583,7 +584,7 @@ IExtension *CExtensionManager::LoadAutoExtension(const char *path, bool bErrorOn if (strcmp(ext, PLATFORM_LIB_EXT) == 0) { char path2[PLATFORM_MAX_PATH]; - smcore.Format(path2, sizeof(path2), "%s", path); + ke::SafeSprintf(path2, sizeof(path2), "%s", path); path2[strlen(path) - strlen(PLATFORM_LIB_EXT) - 1] = '\0'; return LoadAutoExtension(path2, bErrorOnMissing); } @@ -675,7 +676,7 @@ IExtension *CExtensionManager::LoadExtension(const char *file, char *error, size if (strcmp(ext, PLATFORM_LIB_EXT) == 0) { char path2[PLATFORM_MAX_PATH]; - smcore.Format(path2, sizeof(path2), "%s", file); + ke::SafeSprintf(path2, sizeof(path2), "%s", file); path2[strlen(file) - strlen(PLATFORM_LIB_EXT) - 1] = '\0'; return LoadExtension(path2, error, maxlength); } @@ -993,7 +994,7 @@ void CExtensionManager::OnRootConsoleCommand(const char *cmdname, const CCommand char path[PLATFORM_MAX_PATH]; char error[256]; - smcore.Format(path, sizeof(path), "%s%s%s", filename, !strstr(filename, ".ext") ? ".ext" : "", + ke::SafeSprintf(path, sizeof(path), "%s%s%s", filename, !strstr(filename, ".ext") ? ".ext" : "", !strstr(filename, "." PLATFORM_LIB_EXT) ? "." PLATFORM_LIB_EXT : ""); if (FindExtensionByFile(path) != NULL) diff --git a/core/logic/GameConfigs.cpp b/core/logic/GameConfigs.cpp index 8c122425..a132dfc9 100644 --- a/core/logic/GameConfigs.cpp +++ b/core/logic/GameConfigs.cpp @@ -42,6 +42,7 @@ #include "common_logic.h" #include "sm_crc32.h" #include "MemoryUtils.h" +#include #if defined PLATFORM_POSIX #include @@ -271,7 +272,7 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n error[0] = '\0'; if (strcmp(name, "server") != 0) { - smcore.Format(error, sizeof(error), "Unrecognized library \"%s\"", name); + ke::SafeSprintf(error, sizeof(error), "Unrecognized library \"%s\"", name); } else if (!s_ServerBinCRC_Ok) { @@ -281,7 +282,7 @@ SMCResult CGameConfig::ReadSMC_NewSection(const SMCStates *states, const char *n g_pSM->BuildPath(Path_Game, path, sizeof(path), "bin/" PLATFORM_SERVER_BINARY); if ((fp = fopen(path, "rb")) == NULL) { - smcore.Format(error, sizeof(error), "Could not open binary: %s", path); + ke::SafeSprintf(error, sizeof(error), "Could not open binary: %s", path); } else { size_t size; void *buffer; @@ -791,7 +792,7 @@ bool CGameConfig::Reparse(char *error, size_t maxlength) if (!libsys->PathExists(path)) { /* Nope, use the old mechanism. */ - smcore.Format(path, sizeof(path), "%s.txt", m_File); + ke::SafeSprintf(path, sizeof(path), "%s.txt", m_File); if (!EnterFile(path, error, maxlength)) { return false; @@ -801,7 +802,7 @@ bool CGameConfig::Reparse(char *error, size_t maxlength) g_pSM->BuildPath(Path_SM, path, sizeof(path), "gamedata/custom/%s.txt", m_File); if (libsys->PathExists(path)) { - smcore.Format(path, sizeof(path), "custom/%s.txt", m_File); + ke::SafeSprintf(path, sizeof(path), "custom/%s.txt", m_File); return EnterFile(path, error, maxlength); } return true; @@ -841,7 +842,7 @@ bool CGameConfig::Reparse(char *error, size_t maxlength) List::iterator iter; for (iter = fileList.begin(); iter != fileList.end(); iter++) { - smcore.Format(path, sizeof(path), "%s/%s", m_File, (*iter).c_str()); + ke::SafeSprintf(path, sizeof(path), "%s/%s", m_File, (*iter).c_str()); if (!EnterFile(path, error, maxlength)) { return false; @@ -875,7 +876,7 @@ bool CGameConfig::Reparse(char *error, size_t maxlength) continue; } - smcore.Format(path, sizeof(path), "%s/custom/%s", m_File, curFile); + ke::SafeSprintf(path, sizeof(path), "%s/custom/%s", m_File, curFile); if (!EnterFile(path, error, maxlength)) { libsys->CloseDirectory(customDir); diff --git a/core/logic/HandleSys.cpp b/core/logic/HandleSys.cpp index 4ec90627..53385988 100644 --- a/core/logic/HandleSys.cpp +++ b/core/logic/HandleSys.cpp @@ -36,6 +36,7 @@ #include "ShareSys.h" #include "ExtensionSys.h" #include "PluginSys.h" +#include HandleSystem g_HandleSys; @@ -1144,7 +1145,7 @@ void HandleSystem::Dump(HANDLE_REPORTER rep) else { char buffer[32]; - smcore.Format(buffer, sizeof(buffer), "%d", size); + ke::SafeSprintf(buffer, sizeof(buffer), "%d", size); rep("0x%08x\t%-20.20s\t%-20.20s\t%-10.10s", index, owner, type, buffer); total_size += size; } diff --git a/core/logic/Logger.cpp b/core/logic/Logger.cpp index c522b56d..df8d7efb 100644 --- a/core/logic/Logger.cpp +++ b/core/logic/Logger.cpp @@ -34,6 +34,7 @@ #include "Logger.h" #include #include +#include Logger g_Logger; @@ -57,7 +58,7 @@ ConfigResult Logger::OnSourceModConfigChanged(const char *key, } else if (strcasecmp(value, "off") == 0) { state = false; } else { - smcore.Format(error, maxlength, "Invalid value: must be \"on\" or \"off\""); + ke::SafeSprintf(error, maxlength, "Invalid value: must be \"on\" or \"off\""); return ConfigResult_Reject; } @@ -78,7 +79,7 @@ ConfigResult Logger::OnSourceModConfigChanged(const char *key, } else if (strcasecmp(value, "game") == 0) { m_Mode = LoggingMode_Game; } else { - smcore.Format(error, maxlength, "Invalid value: must be [daily|map|game]"); + ke::SafeSprintf(error, maxlength, "Invalid value: must be [daily|map|game]"); return ConfigResult_Reject; } @@ -264,7 +265,7 @@ void Logger::LogToOpenFileEx(FILE *fp, const char *msg, va_list ap) static ConVar *sv_logecho = smcore.FindConVar("sv_logecho"); char buffer[3072]; - smcore.FormatArgs(buffer, sizeof(buffer), msg, ap); + ke::SafeVsprintf(buffer, sizeof(buffer), msg, ap); char date[32]; time_t t = g_pSM->GetAdjustedTime(); @@ -276,7 +277,7 @@ void Logger::LogToOpenFileEx(FILE *fp, const char *msg, va_list ap) if (!sv_logecho || smcore.GetCvarBool(sv_logecho)) { static char conBuffer[4096]; - smcore.Format(conBuffer, sizeof(conBuffer), "L %s: %s\n", date, buffer); + ke::SafeSprintf(conBuffer, sizeof(conBuffer), "L %s: %s\n", date, buffer); smcore.ConPrint(conBuffer); } } @@ -289,7 +290,7 @@ void Logger::LogToFileOnlyEx(FILE *fp, const char *msg, va_list ap) } char buffer[3072]; - smcore.FormatArgs(buffer, sizeof(buffer), msg, ap); + ke::SafeVsprintf(buffer, sizeof(buffer), msg, ap); char date[32]; time_t t = g_pSM->GetAdjustedTime(); diff --git a/core/logic/PhraseCollection.cpp b/core/logic/PhraseCollection.cpp index a26bdd93..6486f0b2 100644 --- a/core/logic/PhraseCollection.cpp +++ b/core/logic/PhraseCollection.cpp @@ -32,6 +32,7 @@ #include "common_logic.h" #include "PhraseCollection.h" #include "Translator.h" +#include CPhraseCollection::CPhraseCollection() { @@ -54,7 +55,7 @@ IPhraseFile *CPhraseCollection::AddPhraseFile(const char *filename) char full_name[PLATFORM_MAX_PATH]; /* No compat shim here. The user should have read the doc. */ - smcore.Format(full_name, sizeof(full_name), "%s.txt", filename); + ke::SafeSprintf(full_name, sizeof(full_name), "%s.txt", filename); fid = g_Translator.FindOrAddPhraseFile(full_name); pFile = g_Translator.GetFileByIndex(fid); diff --git a/core/logic/PluginSys.cpp b/core/logic/PluginSys.cpp index bc4949ef..d17e9a90 100644 --- a/core/logic/PluginSys.cpp +++ b/core/logic/PluginSys.cpp @@ -43,6 +43,7 @@ #include "common_logic.h" #include "Translator.h" #include "Logger.h" +#include CPluginManager g_PluginSys; HandleType_t g_PluginType = 0; @@ -58,7 +59,7 @@ CPlugin::CPlugin(const char *file) m_serial = ++MySerial; m_pRuntime = NULL; m_errormsg[sizeof(m_errormsg) - 1] = '\0'; - smcore.Format(m_filename, sizeof(m_filename), "%s", file); + ke::SafeSprintf(m_filename, sizeof(m_filename), "%s", file); m_handle = 0; m_ident = NULL; m_FakeNativesMissing = false; @@ -157,7 +158,7 @@ CPlugin *CPlugin::CreatePlugin(const char *file, char *error, size_t maxlength) { if (error) { - smcore.Format(error, maxlength, "Unable to open file"); + ke::SafeSprintf(error, maxlength, "Unable to open file"); } pPlugin->m_status = Plugin_BadLoad; return pPlugin; @@ -211,7 +212,7 @@ void CPlugin::SetErrorState(PluginStatus status, const char *error_fmt, ...) va_list ap; va_start(ap, error_fmt); - smcore.FormatArgs(m_errormsg, sizeof(m_errormsg), error_fmt, ap); + ke::SafeVsprintf(m_errormsg, sizeof(m_errormsg), error_fmt, ap); va_end(ap); if (m_pRuntime != NULL) @@ -278,7 +279,7 @@ bool CPlugin::UpdateInfo() { base->LocalToString(info->date, (char **)&pDate); base->LocalToString(info->time, (char **)&pTime); - smcore.Format(m_DateTime, sizeof(m_DateTime), "%s %s", pDate, pTime); + ke::SafeSprintf(m_DateTime, sizeof(m_DateTime), "%s %s", pDate, pTime); } if (m_FileVersion > 5) { @@ -867,7 +868,7 @@ void CPluginManager::LoadPluginsFromDir(const char *basedir, const char *localpa if (localpath == NULL) { /* If no path yet, don't add a former slash */ - smcore.Format(new_local, sizeof(new_local), "%s", dir->GetEntryName()); + ke::SafeSprintf(new_local, sizeof(new_local), "%s", dir->GetEntryName()); } else { libsys->PathFormat(new_local, sizeof(new_local), "%s/%s", localpath, dir->GetEntryName()); } @@ -882,7 +883,7 @@ void CPluginManager::LoadPluginsFromDir(const char *basedir, const char *localpa char plugin[PLATFORM_MAX_PATH]; if (localpath == NULL) { - smcore.Format(plugin, sizeof(plugin), "%s", name); + ke::SafeSprintf(plugin, sizeof(plugin), "%s", name); } else { libsys->PathFormat(plugin, sizeof(plugin), "%s/%s", localpath, name); } @@ -936,14 +937,14 @@ LoadRes CPluginManager::_LoadPlugin(CPlugin **aResult, const char *path, bool de pPlugin->m_pRuntime = g_pSourcePawn2->LoadBinaryFromFile(fullpath, loadmsg, sizeof(loadmsg)); if (!pPlugin->m_pRuntime) { if (error) - smcore.Format(error, maxlength, "Unable to load plugin (%s)", loadmsg); + ke::SafeSprintf(error, maxlength, "Unable to load plugin (%s)", loadmsg); pPlugin->m_status = Plugin_BadLoad; } else { if (pPlugin->UpdateInfo()) { pPlugin->m_status = Plugin_Created; } else { if (error) - smcore.Format(error, maxlength, "%s", pPlugin->m_errormsg); + ke::SafeSprintf(error, maxlength, "%s", pPlugin->m_errormsg); } } } @@ -953,9 +954,9 @@ LoadRes CPluginManager::_LoadPlugin(CPlugin **aResult, const char *path, bool de unsigned char *pCodeHash = pPlugin->m_pRuntime->GetCodeHash(); char codeHashBuf[40]; - smcore.Format(codeHashBuf, 40, "plugin_"); + ke::SafeSprintf(codeHashBuf, 40, "plugin_"); for (int i = 0; i < 16; i++) - smcore.Format(codeHashBuf + 7 + (i * 2), 3, "%02x", pCodeHash[i]); + ke::SafeSprintf(codeHashBuf + 7 + (i * 2), 3, "%02x", pCodeHash[i]); const char *bulletinUrl = g_pGameConf->GetKeyValue(codeHashBuf); if (bulletinUrl != NULL) @@ -966,9 +967,9 @@ LoadRes CPluginManager::_LoadPlugin(CPlugin **aResult, const char *path, bool de { if (bulletinUrl[0] != '\0') { - smcore.Format(error, maxlength, "Known malware detected and blocked. See %s for more info", bulletinUrl); + ke::SafeSprintf(error, maxlength, "Known malware detected and blocked. See %s for more info", bulletinUrl); } else { - smcore.Format(error, maxlength, "Possible malware or illegal plugin detected and blocked"); + ke::SafeSprintf(error, maxlength, "Possible malware or illegal plugin detected and blocked"); } } pPlugin->m_status = Plugin_BadLoad; @@ -1045,11 +1046,11 @@ IPlugin *CPluginManager::LoadPlugin(const char *path, bool debug, PluginType typ { if (m_LoadingLocked) { - smcore.Format(error, maxlength, "There is a global plugin loading lock in effect"); + ke::SafeSprintf(error, maxlength, "There is a global plugin loading lock in effect"); } else { - smcore.Format(error, maxlength, "This plugin is blocked from loading (see plugin_settings.cfg)"); + ke::SafeSprintf(error, maxlength, "This plugin is blocked from loading (see plugin_settings.cfg)"); } } return NULL; @@ -1171,13 +1172,13 @@ bool CPluginManager::FindOrRequirePluginDeps(CPlugin *pPlugin, char *error, size { IPluginFunction *pFunc; char buffer[64]; - smcore.Format(buffer, sizeof(buffer), "__pl_%s_SetNTVOptional", &pubvar->name[5]); + ke::SafeSprintf(buffer, sizeof(buffer), "__pl_%s_SetNTVOptional", &pubvar->name[5]); if ((pFunc=pBase->GetFunctionByName(buffer))) { cell_t res; if (pFunc->Execute(&res) != SP_ERROR_NONE) { if (error) - smcore.Format(error, maxlength, "Fatal error during initializing plugin load"); + ke::SafeSprintf(error, maxlength, "Fatal error during initializing plugin load"); return false; } } @@ -1209,7 +1210,7 @@ bool CPluginManager::FindOrRequirePluginDeps(CPlugin *pPlugin, char *error, size { if (error) { - smcore.Format(error, maxlength, "Could not find required plugin \"%s\"", name); + ke::SafeSprintf(error, maxlength, "Could not find required plugin \"%s\"", name); } return false; } @@ -1281,7 +1282,7 @@ bool CPluginManager::LoadOrRequireExtensions(CPlugin *pPlugin, unsigned int pass { if (error) { - smcore.Format(error, maxlength, "Required extension \"%s\" file(\"%s\") not running", name, file); + ke::SafeSprintf(error, maxlength, "Required extension \"%s\" file(\"%s\") not running", name, file); } return false; } @@ -1294,14 +1295,14 @@ bool CPluginManager::LoadOrRequireExtensions(CPlugin *pPlugin, unsigned int pass { IPluginFunction *pFunc; char buffer[64]; - smcore.Format(buffer, sizeof(buffer), "__ext_%s_SetNTVOptional", &pubvar->name[6]); + ke::SafeSprintf(buffer, sizeof(buffer), "__ext_%s_SetNTVOptional", &pubvar->name[6]); if ((pFunc = pBase->GetFunctionByName(buffer)) != NULL) { cell_t res; if (pFunc->Execute(&res) != SP_ERROR_NONE) { if (error) - smcore.Format(error, maxlength, "Fatal error during plugin initialization (ext req)"); + ke::SafeSprintf(error, maxlength, "Fatal error during plugin initialization (ext req)"); return false; } } @@ -1343,7 +1344,7 @@ bool CPluginManager::RunSecondPass(CPlugin *pPlugin, char *error, size_t maxleng { if (error) { - smcore.Format(error, maxlength, "Native \"%s\" was not found", native->name); + ke::SafeSprintf(error, maxlength, "Native \"%s\" was not found", native->name); } return false; } @@ -1489,7 +1490,7 @@ bool CPluginManager::UnloadPlugin(IPlugin *plugin) if (pContext != NULL && pContext->IsInExec()) { char buffer[255]; - smcore.Format(buffer, sizeof(buffer), "sm plugins unload %s\n", plugin->GetFilename()); + ke::SafeSprintf(buffer, sizeof(buffer), "sm plugins unload %s\n", plugin->GetFilename()); engine->ServerCommand(buffer); return false; } @@ -1853,7 +1854,7 @@ ConfigResult CPluginManager::OnSourceModConfigChanged(const char *key, } else if (strcasecmp(value, "no") == 0) { m_bBlockBadPlugins = false; } else { - smcore.Format(error, maxlength, "Invalid value: must be \"yes\" or \"no\""); + ke::SafeSprintf(error, maxlength, "Invalid value: must be \"yes\" or \"no\""); return ConfigResult_Reject; } return ConfigResult_Accept; @@ -1974,7 +1975,7 @@ void CPluginManager::OnRootConsoleCommand(const char *cmdname, const CCommand &c const sm_plugininfo_t *info = pl->GetPublicInfo(); if (pl->GetStatus() != Plugin_Running && !pl->IsSilentlyFailed()) { - len += smcore.Format(buffer, sizeof(buffer), " %02d <%s>", id, GetStatusText(pl->GetStatus())); + len += ke::SafeSprintf(buffer, sizeof(buffer), " %02d <%s>", id, GetStatusText(pl->GetStatus())); if (pl->GetStatus() <= Plugin_Error) { @@ -1984,25 +1985,25 @@ void CPluginManager::OnRootConsoleCommand(const char *cmdname, const CCommand &c } else { - len += smcore.Format(buffer, sizeof(buffer), " %02d", id); + len += ke::SafeSprintf(buffer, sizeof(buffer), " %02d", id); } if (pl->GetStatus() < Plugin_Created) { if (pl->IsSilentlyFailed()) - len += smcore.Format(&buffer[len], sizeof(buffer)-len, " Disabled:"); - len += smcore.Format(&buffer[len], sizeof(buffer)-len, " \"%s\"", (IS_STR_FILLED(info->name)) ? info->name : pl->GetFilename()); + len += ke::SafeSprintf(&buffer[len], sizeof(buffer)-len, " Disabled:"); + len += ke::SafeSprintf(&buffer[len], sizeof(buffer)-len, " \"%s\"", (IS_STR_FILLED(info->name)) ? info->name : pl->GetFilename()); if (IS_STR_FILLED(info->version)) { - len += smcore.Format(&buffer[len], sizeof(buffer)-len, " (%s)", info->version); + len += ke::SafeSprintf(&buffer[len], sizeof(buffer)-len, " (%s)", info->version); } if (IS_STR_FILLED(info->author)) { - smcore.Format(&buffer[len], sizeof(buffer)-len, " by %s", info->author); + ke::SafeSprintf(&buffer[len], sizeof(buffer)-len, " by %s", info->author); } } else { - smcore.Format(&buffer[len], sizeof(buffer)-len, " %s", pl->m_filename); + ke::SafeSprintf(&buffer[len], sizeof(buffer)-len, " %s", pl->m_filename); } rootmenu->ConsolePrint("%s", buffer); } @@ -2099,11 +2100,11 @@ void CPluginManager::OnRootConsoleCommand(const char *cmdname, const CCommand &c if (pl->GetStatus() < Plugin_Created) { const sm_plugininfo_t *info = pl->GetPublicInfo(); - smcore.Format(name, sizeof(name), (IS_STR_FILLED(info->name)) ? info->name : pl->GetFilename()); + ke::SafeSprintf(name, sizeof(name), (IS_STR_FILLED(info->name)) ? info->name : pl->GetFilename()); } else { - smcore.Format(name, sizeof(name), "%s", pl->GetFilename()); + ke::SafeSprintf(name, sizeof(name), "%s", pl->GetFilename()); } if (UnloadPlugin(pl)) @@ -2252,7 +2253,7 @@ void CPluginManager::OnRootConsoleCommand(const char *cmdname, const CCommand &c char combinedHash[33]; for (int i = 0; i < 16; i++) - smcore.Format(combinedHash + (i * 2), 3, "%02x", pCodeHash[i] ^ pDataHash[i]); + ke::SafeSprintf(combinedHash + (i * 2), 3, "%02x", pCodeHash[i] ^ pDataHash[i]); rootmenu->ConsolePrint(" Hash: %s", combinedHash); } @@ -2570,7 +2571,7 @@ SMPlugin *CPluginManager::FindPluginByConsoleArg(const char *arg) { char pluginfile[256]; const char *ext = libsys->GetFileExtension(arg) ? "" : ".smx"; - smcore.Format(pluginfile, sizeof(pluginfile), "%s%s", arg, ext); + ke::SafeSprintf(pluginfile, sizeof(pluginfile), "%s%s", arg, ext); if (!m_LoadLookup.retrieve(pluginfile, &pl)) return NULL; diff --git a/core/logic/ProfileTools.cpp b/core/logic/ProfileTools.cpp index 52aa9e02..0c40b7ec 100644 --- a/core/logic/ProfileTools.cpp +++ b/core/logic/ProfileTools.cpp @@ -27,6 +27,7 @@ #include "ProfileTools.h" #include +#include ProfileToolManager g_ProfileToolManager; @@ -65,7 +66,7 @@ render_help(const char *fmt, ...) va_list ap; va_start(ap, fmt); - smcore.FormatArgs(buffer, sizeof(buffer), fmt, ap); + ke::SafeVsprintf(buffer, sizeof(buffer), fmt, ap); va_end(ap); rootmenu->ConsolePrint("%s", buffer); diff --git a/core/logic/TextParsers.cpp b/core/logic/TextParsers.cpp index 4d817cc6..5f9cea69 100644 --- a/core/logic/TextParsers.cpp +++ b/core/logic/TextParsers.cpp @@ -1,5 +1,5 @@ /** - * vim: set ts=4 : + * vim: set ts=4 sw=4 tw=99 noet : * ============================================================================= * SourceMod * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved. @@ -37,6 +37,7 @@ #include #include "TextParsers.h" #include +#include TextParsers g_TextParser; ITextParsers *textparsers = &g_TextParser; @@ -134,7 +135,7 @@ SMCError TextParsers::ParseSMCFile(const char *file, states->col = 0; } libsys->GetPlatformError(error, sizeof(error)); - smcore.Format(buffer, maxsize, "File could not be opened: %s", error); + ke::SafeSprintf(buffer, maxsize, "File could not be opened: %s", error); return SMCError_StreamOpen; } @@ -143,7 +144,7 @@ SMCError TextParsers::ParseSMCFile(const char *file, fclose(fp); errstr = GetSMCErrorString(result); - smcore.Format(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error"); + ke::SafeSprintf(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error"); return result; } @@ -194,7 +195,7 @@ SMCError TextParsers::ParseSMCStream(const char *stream, result = ParseStream_SMC(&rs, RawStreamReader, smc_listener, states); const char *errstr = GetSMCErrorString(result); - smcore.Format(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error"); + ke::SafeSprintf(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error"); return result; } diff --git a/core/logic/Translator.cpp b/core/logic/Translator.cpp index babe5232..962c741a 100644 --- a/core/logic/Translator.cpp +++ b/core/logic/Translator.cpp @@ -40,6 +40,7 @@ #include #include "PhraseCollection.h" #include "stringutil.h" +#include Translator g_Translator; IPhraseCollection *g_pCorePhrases = NULL; @@ -711,7 +712,7 @@ ConfigResult Translator::OnSourceModConfigChanged(const char *key, unsigned int index; if (!GetLanguageByCode(value, &index)) { - smcore.Format(error, maxlength, "Language code \"%s\" is not registered", value); + ke::SafeSprintf(error, maxlength, "Language code \"%s\" is not registered", value); return ConfigResult_Reject; } @@ -923,7 +924,7 @@ bool Translator::AddLanguage(const char *langcode, const char *description) Language *pLanguage = new Language; idx = m_Languages.size(); - smcore.Format(pLanguage->m_code2, sizeof(pLanguage->m_code2), "%s", langcode); + ke::SafeSprintf(pLanguage->m_code2, sizeof(pLanguage->m_code2), "%s", langcode); pLanguage->m_CanonicalName = m_pStringTab->AddString(lower); m_LCodeLookup.insert(langcode, idx); diff --git a/core/logic/intercom.h b/core/logic/intercom.h index 7e64bea9..aa9e5057 100644 --- a/core/logic/intercom.h +++ b/core/logic/intercom.h @@ -52,7 +52,7 @@ using namespace SourceHook; * Add 1 to the RHS of this expression to bump the intercom file * This is to prevent mismatching core/logic binaries */ -#define SM_LOGIC_MAGIC (0x0F47C0DE - 30) +#define SM_LOGIC_MAGIC (0x0F47C0DE - 31) #if defined SM_LOGIC class IVEngineServer @@ -299,8 +299,6 @@ struct sm_core_t void (*ConPrint)(const char *message); const char * (*GetCvarString)(ConVar*); bool (*GetCvarBool)(ConVar*); - size_t (*Format)(char*, size_t, const char*, ...); - size_t (*FormatArgs)(char*, size_t, const char*,va_list ap); bool (*gnprintf)(char *, size_t, const char *, IPhraseCollection *, void **, unsigned int, unsigned int &, size_t *, const char **); size_t (*atcprintf)(char *, size_t, const char *, IPluginContext *, const cell_t *, int *); diff --git a/core/logic/smn_banning.cpp b/core/logic/smn_banning.cpp index 3bfb1cdf..eda5fb50 100644 --- a/core/logic/smn_banning.cpp +++ b/core/logic/smn_banning.cpp @@ -35,6 +35,7 @@ #include #include #include "stringutil.h" +#include #define BANFLAG_AUTO (1<<0) /**< Auto-detects whether to ban by steamid or IP */ #define BANFLAG_IP (1<<1) /**< Always ban by IP address */ @@ -140,7 +141,7 @@ static cell_t BanIdentity(IPluginContext *pContext, const cell_t *params) char command[256]; if (ban_by_ip) { - smcore.Format( + ke::SafeSprintf( command, sizeof(command), "addip %d %s\n", @@ -155,7 +156,7 @@ static cell_t BanIdentity(IPluginContext *pContext, const cell_t *params) } else if (!gamehelpers->IsLANServer()) { - smcore.Format( + ke::SafeSprintf( command, sizeof(command), "banid %d %s\n", @@ -213,7 +214,7 @@ static cell_t RemoveBan(IPluginContext *pContext, const cell_t *params) { if (!handled) { - smcore.Format( + ke::SafeSprintf( command, sizeof(command), "removeip %s\n", @@ -226,7 +227,7 @@ static cell_t RemoveBan(IPluginContext *pContext, const cell_t *params) { if (!handled) { - smcore.Format( + ke::SafeSprintf( command, sizeof(command), "removeid %s\n", @@ -344,7 +345,7 @@ static cell_t BanClient(IPluginContext *pContext, const cell_t *params) /* Tell the server to ban the ip */ char command[256]; - smcore.Format( + ke::SafeSprintf( command, sizeof(command), "addip %d %s\n", @@ -368,7 +369,7 @@ static cell_t BanClient(IPluginContext *pContext, const cell_t *params) { /* Tell the server to ban the auth string */ char command[256]; - smcore.Format( + ke::SafeSprintf( command, sizeof(command), "banid %d %s\n", diff --git a/core/logic/smn_lang.cpp b/core/logic/smn_lang.cpp index 074cb1a1..1f8e24fe 100644 --- a/core/logic/smn_lang.cpp +++ b/core/logic/smn_lang.cpp @@ -34,6 +34,7 @@ #include #include #include +#include static cell_t sm_LoadTranslations(IPluginContext *pCtx, const cell_t *params) { @@ -42,7 +43,7 @@ static cell_t sm_LoadTranslations(IPluginContext *pCtx, const cell_t *params) IPlugin *pl = pluginsys->FindPluginByContext(pCtx->GetContext()); pCtx->LocalToString(params[1], &filename); - smcore.Format(buffer, sizeof(buffer), "%s", filename); + ke::SafeSprintf(buffer, sizeof(buffer), "%s", filename); /* Make sure there is no extension */ if ((ext = strstr(buffer, ".txt")) != NULL diff --git a/core/logic/smn_string.cpp b/core/logic/smn_string.cpp index df3a6aaf..828c2f96 100644 --- a/core/logic/smn_string.cpp +++ b/core/logic/smn_string.cpp @@ -35,6 +35,7 @@ #include #include #include "stringutil.h" +#include inline const char *_strstr(const char *str, const char *substr) { @@ -141,7 +142,7 @@ static cell_t sm_numtostr(IPluginContext *pCtx, const cell_t *params) { char *str; pCtx->LocalToString(params[2], &str); - size_t res = smcore.Format(str, params[3], "%d", params[1]); + size_t res = ke::SafeSprintf(str, params[3], "%d", params[1]); return static_cast(res); } @@ -174,7 +175,7 @@ static cell_t sm_floattostr(IPluginContext *pCtx, const cell_t *params) { char *str; pCtx->LocalToString(params[2], &str); - size_t res = smcore.Format(str, params[3], "%f", sp_ctof(params[1])); + size_t res = ke::SafeSprintf(str, params[3], "%f", sp_ctof(params[1])); return static_cast(res); } diff --git a/core/logic_bridge.cpp b/core/logic_bridge.cpp index 03df9c75..49b0b7f9 100644 --- a/core/logic_bridge.cpp +++ b/core/logic_bridge.cpp @@ -589,8 +589,6 @@ static sm_core_t core_bridge = conprint, get_cvar_string, get_cvar_bool, - UTIL_Format, - UTIL_FormatArgs, gnprintf, atcprintf, get_game_name,