diff options
author | Ladislav Zezula <ladislav.zezula@avg.com> | 2015-05-28 13:49:23 +0200 |
---|---|---|
committer | Ladislav Zezula <ladislav.zezula@avg.com> | 2015-05-28 13:49:23 +0200 |
commit | 1b38ceb0d4bb4ae32cb93c295e3ef493b91f9a78 (patch) | |
tree | 5634e1d3fd17386975db1c0d4e95176db098bc1f /src/SBaseCommon.cpp | |
parent | c26e12c79f2a5e0c092de4a62565bdae4bf5a7dd (diff) |
+ Fixed defects found by Coverity (well, most of them)
Diffstat (limited to 'src/SBaseCommon.cpp')
-rw-r--r-- | src/SBaseCommon.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/SBaseCommon.cpp b/src/SBaseCommon.cpp index 9ae7c78..b16472e 100644 --- a/src/SBaseCommon.cpp +++ b/src/SBaseCommon.cpp @@ -93,6 +93,57 @@ unsigned char AsciiToUpperTable_Slash[256] = }; //----------------------------------------------------------------------------- +// Safe string functions + +void StringCopyA(char * dest, const char * src, size_t nMaxChars) +{ + size_t nLength = strlen(src); + + // Don't copy more than nMaxChars + nLength = STORMLIB_MIN(nLength, nMaxChars); + memcpy(dest, src, nLength); + dest[nLength] = 0; +} + +void StringCatA(char * dest, const char * src, size_t nMaxChars) +{ + size_t nLength1 = strlen(dest); + size_t nLength2 = strlen(src); + + // Don't copy more than nMaxChars + if(nLength1 < nMaxChars) + { + nLength2 = STORMLIB_MIN(nLength2, (nMaxChars - nLength1)); + memcpy(dest + nLength1, src, nLength2); + dest[nLength1 + nLength2] = 0; + } +} + +void StringCopyT(TCHAR * dest, const TCHAR * src, size_t nMaxChars) +{ + size_t nLength = _tcslen(src); + + // Don't copy more than nMaxChars + nLength = STORMLIB_MIN(nLength, nMaxChars); + memcpy(dest, src, (nLength * sizeof(TCHAR))); + dest[nLength] = 0; +} + +void StringCatT(TCHAR * dest, const TCHAR * src, size_t nMaxChars) +{ + size_t nLength1 = _tcslen(dest); + size_t nLength2 = _tcslen(src); + + // Don't copy more than nMaxChars + if(nLength1 < nMaxChars) + { + nLength2 = STORMLIB_MIN(nLength2, (nMaxChars - nLength1)); + memcpy(dest + nLength1, src, (nLength2 * sizeof(TCHAR))); + dest[nLength1 + nLength2] = 0; + } +} + +//----------------------------------------------------------------------------- // Storm hashing functions #define STORM_BUFFER_SIZE 0x500 |