summaryrefslogtreecommitdiff
path: root/src/d/d_rawarchive.cpp
diff options
context:
space:
mode:
authorelijah-thomas774 <elijahthomas774@gmail.com>2024-05-25 16:43:01 -0400
committerrobojumper <robojumper@gmail.com>2024-06-02 00:06:17 +0200
commit556fd33fc329f7634f9b0dadc94011bd46dc6b13 (patch)
treeb882b3581800c24dd98301fad18cd7deeff6fc81 /src/d/d_rawarchive.cpp
parent92e5d46eefee9adf6aa99ddf53f8020e8955cfe2 (diff)
fixed regswap and matching
Diffstat (limited to 'src/d/d_rawarchive.cpp')
-rw-r--r--src/d/d_rawarchive.cpp15
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';
}
}