From 4072b62439f5e2ec80c239ec7e6e575da24ebe06 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Sun, 2 Aug 2020 12:44:28 +1000 Subject: [PATCH] if plugin filename ends with _32, ignore it on 64 bit OS (and vice versa) --- src/Deflate.c | 6 ++---- src/Game.c | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Deflate.c b/src/Deflate.c index 812b7d20b..6b78b6b97 100644 --- a/src/Deflate.c +++ b/src/Deflate.c @@ -512,8 +512,7 @@ void Inflate_Process(struct InflateState* state) { nlen = Inflate_ReadBits(state, 16); if (len != (nlen ^ 0xFFFFUL)) { - Inflate_Fail(state, INF_ERR_BLOCKTYPE); - return; + Inflate_Fail(state, INF_ERR_BLOCKTYPE); return; } state->Index = len; /* Reuse for 'uncompressed length' */ state->State = INFLATE_STATE_UNCOMPRESSED_DATA; @@ -625,8 +624,7 @@ void Inflate_Process(struct InflateState* state) { count = state->NumLits + state->NumDists; if (state->Index + repeatCount > count) { - Inflate_Fail(state, INF_ERR_REPEAT_END); - return; + Inflate_Fail(state, INF_ERR_REPEAT_END); return; } Mem_Set(&state->Buffer[state->Index], repeatValue, repeatCount); diff --git a/src/Game.c b/src/Game.c index 3a93cc8c0..bbf62b024 100644 --- a/src/Game.c +++ b/src/Game.c @@ -342,6 +342,10 @@ static void LoadPlugin(const String* path, void* obj) { /* ignore accepted.txt, deskop.ini, .pdb files, etc */ if (!String_CaselessEnds(path, &DynamicLib_Ext)) return; + /* don't try to load 32 bit plugins on 64 bit OS or vice versa */ + if (sizeof(void*) == 4 && String_ContainsConst(path, "_64.")) return; + if (sizeof(void*) == 8 && String_ContainsConst(path, "_32.")) return; + lib = DynamicLib_Load2(path); if (!lib) { Logger_DynamicLibWarn("loading", path); return; }