From 862b9e68be7952f5155083d13b2057f5b1510b03 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 25 Jan 2024 16:05:39 +0300 Subject: [PATCH] engine: server: fix possible null pointer dereference --- engine/server/sv_init.c | 2 +- engine/server/sv_phys.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/engine/server/sv_init.c b/engine/server/sv_init.c index 781d5793..e7045df3 100644 --- a/engine/server/sv_init.c +++ b/engine/server/sv_init.c @@ -545,7 +545,7 @@ void SV_FreeOldEntities( void ) } // decrement svgame.numEntities if the highest number entities died - for( ; EDICT_NUM( svgame.numEntities - 1 )->free; svgame.numEntities-- ); + for( ; ( ent = EDICT_NUM( svgame.numEntities - 1 )) && ent->free; svgame.numEntities-- ); } /* diff --git a/engine/server/sv_phys.c b/engine/server/sv_phys.c index 9e49fd42..52b04ae7 100644 --- a/engine/server/sv_phys.c +++ b/engine/server/sv_phys.c @@ -1842,8 +1842,10 @@ void SV_Physics( void ) // increase framecount sv.framecount++; +#if 0 // figure out why this causes memory corruption // decrement svgame.numEntities if the highest number entities died - for( ; EDICT_NUM( svgame.numEntities - 1 )->free; svgame.numEntities-- ); + for( ; ( ent = EDICT_NUM( svgame.numEntities - 1 )) && ent->free; svgame.numEntities-- ); +#endif } /*