aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpracticalswift <practicalswift@users.noreply.github.com>2018-05-02 10:43:17 +0200
committerpracticalswift <practicalswift@users.noreply.github.com>2018-05-02 10:43:17 +0200
commit76f344de6d144e0a8169594836575a5812157327 (patch)
treee80f4df89786628072dc33b14dc4f649b309afe7
parent57c57df86f14874cfc4b280e04a7f44b19839c26 (diff)
logging: Fix potential use-after-free in LogPrintStr(...)
-rw-r--r--src/logging.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/logging.cpp b/src/logging.cpp
index 10a3b18958..6046969375 100644
--- a/src/logging.cpp
+++ b/src/logging.cpp
@@ -222,8 +222,11 @@ int BCLog::Logger::LogPrintStr(const std::string &str)
// reopen the log file, if requested
if (m_reopen_file) {
m_reopen_file = false;
- if (fsbridge::freopen(m_file_path,"a",m_fileout) != nullptr)
- setbuf(m_fileout, nullptr); // unbuffered
+ m_fileout = fsbridge::freopen(m_file_path, "a", m_fileout);
+ if (!m_fileout) {
+ return ret;
+ }
+ setbuf(m_fileout, nullptr); // unbuffered
}
ret = FileWriteStr(strTimestamped, m_fileout);