openvt,getty,vfork_daemon_rexec,mount: tighten up fd cleanup code
(will close all fd's > 2 on daemonization now) getty: fix "getty -" support, and also do not try to chown/chmod "-" telnetd: fix "lost ctty" bug Yet another attempt on saner function names: bb_sanitize_server_stdio(0/1) -> bb_sanitize_stdio() + bb_daemonize();
This commit is contained in:
@ -509,7 +509,7 @@ void xdaemon(int nochdir, int noclose)
|
||||
}
|
||||
#endif
|
||||
|
||||
void bb_sanitize_server_stdio(int daemonize)
|
||||
void bb_sanitize_stdio_maybe_daemonize(int daemonize)
|
||||
{
|
||||
int fd;
|
||||
/* Mega-paranoid */
|
||||
@ -523,8 +523,8 @@ void bb_sanitize_server_stdio(int daemonize)
|
||||
if (pid) /* parent */
|
||||
exit(0);
|
||||
/* child */
|
||||
setsid();
|
||||
/* if daemonizing, make sure we detach from stdio */
|
||||
setsid();
|
||||
dup2(fd, 0);
|
||||
dup2(fd, 1);
|
||||
dup2(fd, 2);
|
||||
@ -532,6 +532,14 @@ void bb_sanitize_server_stdio(int daemonize)
|
||||
while (fd > 2)
|
||||
close(fd--); /* close everything after fd#2 */
|
||||
}
|
||||
void bb_sanitize_stdio(void)
|
||||
{
|
||||
bb_sanitize_stdio_maybe_daemonize(0);
|
||||
}
|
||||
void bb_daemonize(void)
|
||||
{
|
||||
bb_sanitize_stdio_maybe_daemonize(1);
|
||||
}
|
||||
|
||||
// Die with an error message if we can't open a new socket.
|
||||
int xsocket(int domain, int type, int protocol)
|
||||
|
Reference in New Issue
Block a user