diff options
| author | elijah-thomas774 <elijahthomas774@gmail.com> | 2024-05-25 16:43:01 -0400 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2024-06-02 00:06:17 +0200 |
| commit | 556fd33fc329f7634f9b0dadc94011bd46dc6b13 (patch) | |
| tree | b882b3581800c24dd98301fad18cd7deeff6fc81 /src/d/d_rawarchive.cpp | |
| parent | 92e5d46eefee9adf6aa99ddf53f8020e8955cfe2 (diff) | |
fixed regswap and matching
Diffstat (limited to 'src/d/d_rawarchive.cpp')
| -rw-r--r-- | src/d/d_rawarchive.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/d/d_rawarchive.cpp b/src/d/d_rawarchive.cpp index 0501f256..888ade40 100644 --- a/src/d/d_rawarchive.cpp +++ b/src/d/d_rawarchive.cpp @@ -137,10 +137,17 @@ bool dRawArcEntry_c::loadArcFromDiskChecked(const char *fileName, const char *di inline void inline_strncat(char *dest, const char *src, size_t destSize) { if (src != nullptr) { size_t destLen = strlen(dest); - size_t srcLen = strlen(src); - size_t count = destLen + srcLen + 1 >= destSize ? destSize - destLen - 1 : srcLen; - strncpy(dest + destLen, src, count); - size_t offset = destLen + count; + size_t copyLen = strlen(src); + + // Make sure copy length isnt more than destination length + if (destLen + copyLen + 1 >= destSize) { + copyLen = destSize - destLen - 1; + } + + strncpy(dest + destLen, src, copyLen); + + // make sure string is null terminated + size_t offset = destLen + copyLen; dest[offset] = '\0'; } } |
