From 8b7faa10c1df045c68665527a5c71a1807850572 Mon Sep 17 00:00:00 2001 From: toaster Date: Mon, 6 Feb 2023 20:46:47 +0000 Subject: [PATCH] M_LevelListFromGametype: Remove memory-corrupting memset - firstlen was in units of raw UINT8 address (pre-multiplied by sizeof(cupheader_t*)) to permit being used in Z_Realloc. However, it was being added onto the cupgrid.builtgrid pointer BEFORE it was cast into UINT8* for memset, leading to an offset, when considered in terms of UINT8 address. - Z_Realloc2 is always guaranteed to memset any appended memory so this wasn't even required --- src/menus/transient/level-select.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/menus/transient/level-select.c b/src/menus/transient/level-select.c index 3ccbd7a7e..74b854a79 100644 --- a/src/menus/transient/level-select.c +++ b/src/menus/transient/level-select.c @@ -288,7 +288,6 @@ boolean M_LevelListFromGametype(INT16 gt) I_Error("M_LevelListFromGametype: Not enough memory to reallocate builtgrid"); } - memset(cupgrid.builtgrid + firstlen, 0, firstlen); cupgrid.cappages *= 2; }