From c8d54b45462bbd65dd6e46f48f167d8bbd312dea Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 12 Dec 2025 13:50:21 -0500 Subject: [PATCH] Fix the servers crashing when suddenly exiting voting (ie everyone leaves) --- src/d_netcmd.c | 3 +-- src/y_inter.c | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 011aba33b..71c62b073 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -3216,10 +3216,9 @@ void D_PickVote(void) } } - key = M_RandomKey(numvotes); - if (numvotes > 0) { + key = M_RandomKey(numvotes); WRITESINT8(p, temppicks[key]); WRITESINT8(p, templevels[key]); } diff --git a/src/y_inter.c b/src/y_inter.c index f4389cf86..d43e0a535 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -2011,6 +2011,14 @@ void Y_StartVote(void) // void Y_EndVote(void) { + if (nextmap >= NEXTMAP_SPECIAL) + { + // Don't leave nextmap unset if the vote is ended through + // weird means! (such as a dedicated server becoming empty) + // If nextmap was left at NEXTMAP_VOTING, we'd crash! + Y_VoteStops(0, 0); + } + Y_UnloadVoteData(); voteendtic = -1; }