From 27cf39dd54a229a15ec1682d8d86f60b94fdfea2 Mon Sep 17 00:00:00 2001 From: Hanicef <gustaf@hanicef.me> Date: Fri, 9 Feb 2024 19:19:20 +0100 Subject: [PATCH] Prevent recursion into quit functions --- src/dedicated/i_system.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dedicated/i_system.c b/src/dedicated/i_system.c index 94937504d..2afde6ac7 100644 --- a/src/dedicated/i_system.c +++ b/src/dedicated/i_system.c @@ -220,6 +220,8 @@ static boolean framebuffer = false; static size_t num_exit_funcs; static void (*exit_funcs[MAX_EXIT_FUNCS])(void); +static boolean is_quitting = false; + #ifdef __linux__ #define MEMINFO_FILE "/proc/meminfo" #define MEMTOTAL "MemTotal:" @@ -457,6 +459,10 @@ ticcmd_t *I_BaseTiccmd2(void) FUNCNORETURN static void I_QuitStatus(int status) { + if (is_quitting) + abort(); + + is_quitting = true; M_SaveConfig(NULL); //save game config, cvars.. D_SaveBan(); // save the ban list G_SaveGameData(clientGamedata); // Tails 12-08-2002 -- GitLab