diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-01-19 21:19:35 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-01-19 21:19:35 +0000 |
commit | 9af7c9d6b62ceb07a9ba24cee0cf4a08c689235e (patch) | |
tree | 69a650a8cd686f21087fc572a995420b6ac632cc /libbb/xfuncs.c | |
parent | f8c11aa65df2af4ab20c0effc42997bbd7357cc3 (diff) |
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();
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r-- | libbb/xfuncs.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 84d47414a..dc160bf5c 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -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) |