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();
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c
index 84d4741..dc160bf 100644
--- a/libbb/xfuncs.c
+++ b/libbb/xfuncs.c
@@ -509,7 +509,7 @@
}
#endif
-void bb_sanitize_server_stdio(int daemonize)
+void bb_sanitize_stdio_maybe_daemonize(int daemonize)
{
int fd;
/* Mega-paranoid */
@@ -523,8 +523,8 @@
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 @@
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)