From e97cd98f909b4fba0c47c028f704b86c60a55aff Mon Sep 17 00:00:00 2001 From: XMRig Date: Fri, 23 Jun 2017 19:37:41 +0300 Subject: [PATCH] Fix file log for linux. --- src/log/FileLog.cpp | 2 +- src/log/Log.cpp | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/log/FileLog.cpp b/src/log/FileLog.cpp index b08cd2038..a1e801593 100644 --- a/src/log/FileLog.cpp +++ b/src/log/FileLog.cpp @@ -41,7 +41,7 @@ FileLog::FileLog(const char *fileName) { uv_fs_t req; - m_file = uv_fs_open(uv_default_loop(), &req, fileName, O_CREAT | O_APPEND, 0644, nullptr); + m_file = uv_fs_open(uv_default_loop(), &req, fileName, O_CREAT | O_APPEND | O_WRONLY, 0644, nullptr); uv_fs_req_cleanup(&req); } diff --git a/src/log/Log.cpp b/src/log/Log.cpp index 6d509ae71..541486ebd 100644 --- a/src/log/Log.cpp +++ b/src/log/Log.cpp @@ -44,23 +44,27 @@ Log *Log::m_self = nullptr; void Log::message(Log::Level level, const char* fmt, ...) { va_list args; + va_list copy; va_start(args, fmt); for (ILogBackend *backend : m_backends) { - backend->message(level, fmt, args); + va_copy(copy, args); + backend->message(level, fmt, copy); + va_end(copy); } - - va_end(args); } void Log::text(const char* fmt, ...) { va_list args; + va_list copy; va_start(args, fmt); for (ILogBackend *backend : m_backends) { - backend->text(fmt, args); + va_copy(copy, args); + backend->text(fmt, copy); + va_end(copy); } va_end(args);