From 96c121717b5e050cb768ffae614aa8d27a42e439 Mon Sep 17 00:00:00 2001 From: VDm Date: Tue, 20 Feb 2024 00:37:21 +0400 Subject: [PATCH] fix(log): fix SLogDestroy() memory corruption --- storm/Log.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/storm/Log.cpp b/storm/Log.cpp index 3636243..5b3f624 100644 --- a/storm/Log.cpp +++ b/storm/Log.cpp @@ -414,12 +414,17 @@ int SLogIsInitialized() { void SLogDestroy() { for (size_t i = 0; i < STORM_LOG_MAX_CHANNELS; ++i) { s_critsect[i]->Enter(); - for (LOG* log = s_loghead[i]; log; log = log->next) { + LOG* log = s_loghead[i]; + while (log) { if (log->file) { FlushLog(log); fclose(log->file); } + LOG* next = log->next; + SMemFree(log); + log = next; } + s_loghead[i] = nullptr; s_critsect[i]->Leave(); delete s_critsect[i]; }