From 45f99fbb9c968f3f726e7d2f381fc31583e07d84 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 28 Oct 2007 08:25:56 +0000 Subject: [PATCH] mirroed sdk fixes --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401656 --- extensions/bintools/sdk/smsdk_ext.h | 20 ++++++++++++++------ extensions/cstrike/sdk/smsdk_ext.h | 20 ++++++++++++++------ extensions/geoip/sdk/smsdk_ext.h | 20 ++++++++++++++------ extensions/mysql/sdk/smsdk_ext.h | 20 ++++++++++++++------ extensions/sdktools/sdk/smsdk_ext.h | 20 ++++++++++++++------ extensions/sqlite/sdk/smsdk_ext.h | 20 ++++++++++++++------ extensions/topmenus/sdk/smsdk_ext.h | 20 ++++++++++++++------ 7 files changed, 98 insertions(+), 42 deletions(-) diff --git a/extensions/bintools/sdk/smsdk_ext.h b/extensions/bintools/sdk/smsdk_ext.h index f75071ac..4324a11b 100644 --- a/extensions/bintools/sdk/smsdk_ext.h +++ b/extensions/bintools/sdk/smsdk_ext.h @@ -269,11 +269,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -282,11 +286,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ diff --git a/extensions/cstrike/sdk/smsdk_ext.h b/extensions/cstrike/sdk/smsdk_ext.h index 7a133bf8..905e13a6 100644 --- a/extensions/cstrike/sdk/smsdk_ext.h +++ b/extensions/cstrike/sdk/smsdk_ext.h @@ -273,11 +273,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -286,11 +290,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ diff --git a/extensions/geoip/sdk/smsdk_ext.h b/extensions/geoip/sdk/smsdk_ext.h index f75071ac..4324a11b 100644 --- a/extensions/geoip/sdk/smsdk_ext.h +++ b/extensions/geoip/sdk/smsdk_ext.h @@ -269,11 +269,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -282,11 +286,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ diff --git a/extensions/mysql/sdk/smsdk_ext.h b/extensions/mysql/sdk/smsdk_ext.h index f75071ac..4324a11b 100644 --- a/extensions/mysql/sdk/smsdk_ext.h +++ b/extensions/mysql/sdk/smsdk_ext.h @@ -269,11 +269,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -282,11 +286,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ diff --git a/extensions/sdktools/sdk/smsdk_ext.h b/extensions/sdktools/sdk/smsdk_ext.h index 69fc3b0e..fdda6ad3 100644 --- a/extensions/sdktools/sdk/smsdk_ext.h +++ b/extensions/sdktools/sdk/smsdk_ext.h @@ -279,11 +279,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -292,11 +296,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ diff --git a/extensions/sqlite/sdk/smsdk_ext.h b/extensions/sqlite/sdk/smsdk_ext.h index f75071ac..4324a11b 100644 --- a/extensions/sqlite/sdk/smsdk_ext.h +++ b/extensions/sqlite/sdk/smsdk_ext.h @@ -269,11 +269,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -282,11 +286,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_ diff --git a/extensions/topmenus/sdk/smsdk_ext.h b/extensions/topmenus/sdk/smsdk_ext.h index 83038a72..b37ce03f 100644 --- a/extensions/topmenus/sdk/smsdk_ext.h +++ b/extensions/topmenus/sdk/smsdk_ext.h @@ -290,11 +290,15 @@ extern IServerGameDLL *gamedll; #define SM_GET_IFACE(prefix, addr) \ if (!g_pShareSys->RequestInterface(SM_MKIFACE(prefix), myself, (SMInterface **)&addr)) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s (version: %d)", SMINTERFACE_##prefix##_NAME, SMINTERFACE_##prefix##_VERSION); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } /** Automates retrieving SourceMod interfaces when needed outside of SDK_OnLoad() */ #define SM_GET_LATE_IFACE(prefix, addr) \ @@ -303,11 +307,15 @@ extern IServerGameDLL *gamedll; #define SM_CHECK_IFACE(prefix, addr) \ if (!addr) \ { \ - if (error) \ + if (error != NULL && maxlength) \ { \ - snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ - return false; \ + size_t len = snprintf(error, maxlength, "Could not find interface: %s", SMINTERFACE_##prefix##_NAME); \ + if (len >= maxlength) \ + { \ + error[maxlength - 1] = '\0'; \ + } \ } \ + return false; \ } #endif // _INCLUDE_SOURCEMOD_EXTENSION_BASESDK_H_