Fix #6147 DB corruption from child process overwrite

Don't leave stdout/stderr dangling on a fork.
This commit is contained in:
Howard Chu 2019-11-17 11:41:09 +00:00
parent df9843212a
commit 47d094c0c4
No known key found for this signature in database
GPG key ID: FD2A70B44AB11BA7

View file

@ -127,13 +127,18 @@ void fork(const std::string & pidfile)
{
quit("Unable to open output file: " + output);
}
#else
if (open("/dev/null", O_WRONLY) < 0)
{
quit("Unable to open /dev/null");
}
#endif
// Also send standard error to the same log file.
if (dup(1) < 0)
{
quit("Unable to dup output descriptor");
}
#endif
}
} // namespace posix