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]; }