From 78fdeca8518506328209654d1fa503a7cd649ff1 Mon Sep 17 00:00:00 2001 From: kaelima Date: Thu, 9 Aug 2012 12:54:35 +0200 Subject: Core/Logging: Fix crash in AppenderFile deconstructor when logfile is uninitialized --- src/server/shared/Logging/AppenderFile.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index d66771b9055..d47a7c4028d 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -26,8 +26,8 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, co { dynamicName = std::string::npos != filename.find("%u"); backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP; - if (!dynamicName) - logfile = OpenFile(_filename, _mode, backup); + + logfile = !dynamicName ? OpenFile(_filename, _mode, backup) : NULL; } AppenderFile::~AppenderFile() -- cgit v1.2.3 From ca0a54f3572e91f75f880ff9b8e74c450f7d9c36 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 9 Aug 2012 14:31:09 +0200 Subject: Core/Logging: Fixed a possible crash with dynamic log file names --- src/server/shared/Logging/Appender.h | 2 +- src/server/shared/Logging/AppenderFile.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src/server/shared/Logging/AppenderFile.cpp') diff --git a/src/server/shared/Logging/Appender.h b/src/server/shared/Logging/Appender.h index 7d7375a1edb..332edbf170c 100644 --- a/src/server/shared/Logging/Appender.h +++ b/src/server/shared/Logging/Appender.h @@ -139,7 +139,7 @@ class Appender static const char* getLogFilterTypeString(LogFilterType type); private: - virtual void _write(LogMessage& /*message*/) {}; + virtual void _write(LogMessage& /*message*/) = 0; uint8 id; std::string name; diff --git a/src/server/shared/Logging/AppenderFile.cpp b/src/server/shared/Logging/AppenderFile.cpp index d47a7c4028d..01a2f34baa7 100644 --- a/src/server/shared/Logging/AppenderFile.cpp +++ b/src/server/shared/Logging/AppenderFile.cpp @@ -26,7 +26,7 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, co { dynamicName = std::string::npos != filename.find("%u"); backup = _flags & APPENDER_FLAGS_MAKE_FILE_BACKUP; - + logfile = !dynamicName ? OpenFile(_filename, _mode, backup) : NULL; } @@ -54,7 +54,10 @@ void AppenderFile::_write(LogMessage& message) fflush(logfile); if (dynamicName) + { fclose(logfile); + logfile = NULL; + } } } -- cgit v1.2.3