main: open /dev/null as stdin/out/err in daemonization
chronyd doesn't normally write anything to stdout or stderr when running as a daemon, but it is a good practice to replace them with descriptors of /dev/null to prevent accidental writes to other files or sockets that would otherwise take their place.
This commit is contained in:
parent
7b98443a13
commit
da862158bf
1 changed files with 9 additions and 0 deletions
9
main.c
9
main.c
|
@ -292,6 +292,8 @@ write_pidfile(void)
|
|||
|
||||
/* ================================================== */
|
||||
|
||||
#define DEV_NULL "/dev/null"
|
||||
|
||||
static void
|
||||
go_daemon(void)
|
||||
{
|
||||
|
@ -352,6 +354,13 @@ go_daemon(void)
|
|||
}
|
||||
|
||||
LOG_SetParentFd(pipefd[1]);
|
||||
|
||||
/* Open /dev/null as new stdin/out/err */
|
||||
errno = 0;
|
||||
if (open(DEV_NULL, O_RDONLY) != STDIN_FILENO ||
|
||||
open(DEV_NULL, O_WRONLY) != STDOUT_FILENO ||
|
||||
open(DEV_NULL, O_RDWR) != STDERR_FILENO)
|
||||
LOG_FATAL("Could not open %s : %s", DEV_NULL, strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue