daemon: simplified daemonize_close_stdin()
Don't bother to call fstat() or isatty() on STDIN_FILENO.
This commit is contained in:
parent
6c0f5fc612
commit
cdf1eaeb2c
22
src/daemon.c
22
src/daemon.c
@ -31,24 +31,14 @@
|
|||||||
void
|
void
|
||||||
daemonize_close_stdin(void)
|
daemonize_close_stdin(void)
|
||||||
{
|
{
|
||||||
int fd, st;
|
int fd = open("/dev/null", O_RDONLY);
|
||||||
struct stat ss;
|
|
||||||
|
|
||||||
if ((st = fstat(STDIN_FILENO, &ss)) < 0) {
|
if (fd < 0)
|
||||||
if ((fd = open("/dev/null", O_RDONLY) > 0)) {
|
close(STDIN_FILENO);
|
||||||
g_debug("stdin closed, and could not open /dev/null "
|
else if (fd != STDIN_FILENO) {
|
||||||
"as fd=0, some external library bugs "
|
dup2(fd, STDIN_FILENO);
|
||||||
"may be exposed...");
|
close(fd);
|
||||||
close(fd);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
if (!isatty(STDIN_FILENO))
|
|
||||||
return;
|
|
||||||
if ((fd = open("/dev/null", O_RDONLY)) < 0)
|
|
||||||
g_error("failed to open /dev/null %s", strerror(errno));
|
|
||||||
if (dup2(fd, STDIN_FILENO) < 0)
|
|
||||||
g_error("dup2 stdin: %s", strerror(errno));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user