From 86b286fb0bd6284c2ed41bfa375effe3ca29778b Mon Sep 17 00:00:00 2001 From: Alug Date: Fri, 6 Feb 2026 20:03:54 +0100 Subject: [PATCH] fix few more cases of using potentially uninitialized garbage --- src/command.c | 2 +- src/g_demo.c | 2 +- src/hardware/hw_main.cpp | 3 +-- src/hu_stuff.c | 3 +++ src/m_menu.c | 2 +- src/s_sound.c | 3 +-- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/command.c b/src/command.c index 6b71dce73..0b1578381 100644 --- a/src/command.c +++ b/src/command.c @@ -1793,7 +1793,7 @@ void CV_AddValue(consvar_t *var, INT32 increment) if (newvalue == oldvalue) break; // don't loop forever if there's none of a certain gametype - if (newvalue >= 0 && !mapheaderinfo[newvalue]) + if (newvalue >= 0 && newvalue < NUMMAPS && !mapheaderinfo[newvalue]) continue; // Don't allocate the header. That just makes memory usage skyrocket. } while (!M_CanShowLevelInList(newvalue, gt)); diff --git a/src/g_demo.c b/src/g_demo.c index ede5adf18..9662ce517 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -2605,7 +2605,7 @@ void G_DoPlayDemo(char *defdemoname) boolean skiperrors = false; #endif boolean spectator; - UINT8 slots[MAXPLAYERS], kartspeed[MAXPLAYERS], kartweight[MAXPLAYERS], numslots = 0; + UINT8 slots[MAXPLAYERS] = {}, kartspeed[MAXPLAYERS] = {}, kartweight[MAXPLAYERS] = {}, numslots = 0; G_InitDemoRewind(); diff --git a/src/hardware/hw_main.cpp b/src/hardware/hw_main.cpp index 5cc8eacf7..e9aa0532d 100644 --- a/src/hardware/hw_main.cpp +++ b/src/hardware/hw_main.cpp @@ -1378,8 +1378,7 @@ void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom FSurfaceInfo Surf; - if (gl_frontsector) - Surf.PolyColor.s.alpha = 255; + Surf.PolyColor.s.alpha = 255; const INT32 gl_midtexture = R_GetTextureNum(gl_sidedef->midtexture); GLMapTexture_t *glTex = NULL; diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 653529bf4..6ede89fc6 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -497,7 +497,9 @@ static void HU_removeChatText_Log(void) { chat_log[i] = chat_log[i+1]; } + chat_nummsg_log--; // lost 1 msg. + chat_log[chat_nummsg_log] = NULL; } static void Chatlogsize_OnChange(void) @@ -516,6 +518,7 @@ static void Chatlogsize_OnChange(void) if (new_chat_log == NULL) { free(chat_log); + chat_log = NULL; return; } chat_log = new_chat_log; diff --git a/src/m_menu.c b/src/m_menu.c index 5a2b92d92..0e753f621 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -2936,7 +2936,7 @@ static void M_PrepareLevelSelect(void) boolean M_CanShowLevelInList(INT32 mapnum, INT32 gt) { // invalid mapnum - if (mapnum < -1) + if (mapnum < -1 || mapnum >= NUMMAPS) return false; // Random map! diff --git a/src/s_sound.c b/src/s_sound.c index 7f931671d..f2ee1dc03 100644 --- a/src/s_sound.c +++ b/src/s_sound.c @@ -473,13 +473,12 @@ void S_StartSoundAtVolume(const void *origin_p, sfxenum_t sfx_id, INT32 volume) return; memset(listener, 0, sizeof(listener)); + memset(listenmobj, 0, sizeof(listenmobj)); for (i = 0; i <= splitscreen; i++) { player_t *player = &players[displayplayers[i]]; - listenmobj[i] = NULL; - if (player->awayviewtics) { listenmobj[i] = player->awayviewmobj;