From 8d623e96099be3ec473e2e8ce743f86960714d3f Mon Sep 17 00:00:00 2001 From: Thulinma Date: Mon, 1 May 2023 15:20:53 +0200 Subject: [PATCH] Fix segfault in deinitState when original initState failed --- src/controller/controller_storage.cpp | 30 +++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/controller/controller_storage.cpp b/src/controller/controller_storage.cpp index 1b22829e..d4e5776c 100644 --- a/src/controller/controller_storage.cpp +++ b/src/controller/controller_storage.cpp @@ -211,31 +211,31 @@ namespace Controller{ void deinitState(bool leaveBehind){ tthread::lock_guard guard(logMutex); if (!leaveBehind){ - rlxLogs->setExit(); - shmLogs->master = true; - rlxAccs->setExit(); - shmAccs->master = true; - rlxStrm->setExit(); - shmStrm->master = true; + if (rlxLogs){rlxLogs->setExit();} + if (shmLogs){shmLogs->master = true;} + if (rlxAccs){rlxAccs->setExit();} + if (shmAccs){shmAccs->master = true;} + if (rlxStrm){rlxStrm->setExit();} + if (shmStrm){shmStrm->master = true;} }else{ - shmLogs->master = false; - shmAccs->master = false; - shmStrm->master = false; + if (shmLogs){shmLogs->master = false;} + if (shmAccs){shmAccs->master = false;} + if (shmStrm){shmStrm->master = false;} } Util::RelAccX *tmp = rlxLogs; rlxLogs = 0; - delete tmp; - delete shmLogs; + if (tmp){delete tmp;} + if (shmLogs){delete shmLogs;} shmLogs = 0; tmp = rlxAccs; rlxAccs = 0; - delete tmp; - delete shmAccs; + if (tmp){delete tmp;} + if (shmAccs){delete shmAccs;} shmAccs = 0; tmp = rlxStrm; rlxStrm = 0; - delete tmp; - delete shmStrm; + if (tmp){delete tmp;} + if (shmStrm){delete shmStrm;} shmStrm = 0; }