From fb9f8c9cd85e0585d674457c8e62b41d664468df Mon Sep 17 00:00:00 2001 From: Spoike Date: Mon, 9 Jan 2023 05:13:28 +0000 Subject: [PATCH] Fixups for crashes triggered by xonotic, probably some other mods too. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6325 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/server/pr_cmds.c | 2 ++ engine/server/sv_ents.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/engine/server/pr_cmds.c b/engine/server/pr_cmds.c index d1929681c..f67feb9ad 100644 --- a/engine/server/pr_cmds.c +++ b/engine/server/pr_cmds.c @@ -5212,6 +5212,8 @@ client_t *Write_GetClient(void) entnum = NUM_FOR_EDICT(svprogfuncs, ent); if (entnum < 1 || entnum > sv.allocated_client_slots) return NULL;//PR_RunError ("WriteDest: not a client"); + if (svs.clients[entnum-1].protocol == SCP_BAD) + return NULL; //don't try writing to bots... we don't want the overflows. return &svs.clients[entnum-1]; } diff --git a/engine/server/sv_ents.c b/engine/server/sv_ents.c index 67e1467b5..91acda181 100644 --- a/engine/server/sv_ents.c +++ b/engine/server/sv_ents.c @@ -4440,6 +4440,11 @@ void SV_CleanupEnts(void) if (!needcleanup) return; + if (needcleanup >= sv.world.num_edicts) + { + needcleanup = 0; + return; + } for (e=1 ; e<=needcleanup ; e++) {