From 5267747297a0cd5c5b951da3d8a1c117fe9c4bd5 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Sun, 17 Nov 2019 11:41:09 +0000 Subject: [PATCH] Fix #6147 DB corruption from child process overwrite Don't leave stdout/stderr dangling on a fork. --- src/daemonizer/posix_fork.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/daemonizer/posix_fork.cpp b/src/daemonizer/posix_fork.cpp index 5af4e1a4a..16758215d 100644 --- a/src/daemonizer/posix_fork.cpp +++ b/src/daemonizer/posix_fork.cpp @@ -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