diff --git a/rehlds/engine/common.cpp b/rehlds/engine/common.cpp index 02ac57b..5f17d4b 100644 --- a/rehlds/engine/common.cpp +++ b/rehlds/engine/common.cpp @@ -1995,6 +1995,9 @@ int EXT_FUNC COM_FileSize(const char *filename) unsigned char* EXT_FUNC COM_LoadFile(const char *path, int usehunk, int *pLength) { + if (!path || !path[0]) + return NULL; + char base[MAX_PATH]; unsigned char *buf = NULL; diff --git a/rehlds/engine/unicode_strtools.cpp b/rehlds/engine/unicode_strtools.cpp index 275c9af..385cee9 100644 --- a/rehlds/engine/unicode_strtools.cpp +++ b/rehlds/engine/unicode_strtools.cpp @@ -461,7 +461,7 @@ static uchar16 *StripWhitespaceWorker(uchar16 *pwch, int cchLength, bool *pbStri // walk backwards from the end of the string, killing any whitespace *pbStrippedWhitespace = false; - uchar16 *pwchEnd = pwch + cchLength; + uchar16 *pwchEnd = pwch + cchLength - 1; while (--pwchEnd >= pwch) { if (!iswspace(*pwchEnd) && !Q_IsMeanSpaceW(*pwchEnd)) @@ -505,7 +505,7 @@ uchar16 *__cdecl StripUnprintableWorker(uchar16 *pwch, int *pLength, bool *pStri *pStripped = rPos != wPos; if (*pStripped) - *pLength = wPos - pwch; + *pLength = (wPos - pwch) + 1; // null termination return pwch; } diff --git a/rehlds/engine/zone.h b/rehlds/engine/zone.h index 46dcd22..8c7b437 100644 --- a/rehlds/engine/zone.h +++ b/rehlds/engine/zone.h @@ -30,7 +30,7 @@ #include "maintypes.h" -#define ZONE_DYNAMIC_SIZE 0x20000 +#define ZONE_DYNAMIC_SIZE 0x200000 typedef struct memblock_s memblock_t; typedef struct memzone_s memzone_t;