Merge #9798: Fix Issue #9775 (Check returned value of fopen)

40f11f8 Fix for issue #9775. Added check for open() returning a NULL pointer. (kirit93)
This commit is contained in:
Wladimir J. van der Laan 2017-02-21 14:32:44 +01:00
commit 8ad31f9aa3
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6

View File

@ -214,13 +214,14 @@ void OpenDebugLog()
assert(vMsgsBeforeOpenLog); assert(vMsgsBeforeOpenLog);
boost::filesystem::path pathDebug = GetDataDir() / "debug.log"; boost::filesystem::path pathDebug = GetDataDir() / "debug.log";
fileout = fopen(pathDebug.string().c_str(), "a"); fileout = fopen(pathDebug.string().c_str(), "a");
if (fileout) setbuf(fileout, NULL); // unbuffered if (fileout) {
setbuf(fileout, NULL); // unbuffered
// dump buffered messages from before we opened the log // dump buffered messages from before we opened the log
while (!vMsgsBeforeOpenLog->empty()) { while (!vMsgsBeforeOpenLog->empty()) {
FileWriteStr(vMsgsBeforeOpenLog->front(), fileout); FileWriteStr(vMsgsBeforeOpenLog->front(), fileout);
vMsgsBeforeOpenLog->pop_front(); vMsgsBeforeOpenLog->pop_front();
} }
}
delete vMsgsBeforeOpenLog; delete vMsgsBeforeOpenLog;
vMsgsBeforeOpenLog = NULL; vMsgsBeforeOpenLog = NULL;