diff options
author | Rob Landley | 2006-06-16 16:35:53 +0000 |
---|---|---|
committer | Rob Landley | 2006-06-16 16:35:53 +0000 |
commit | d9a761d9c3ed1ec9143b2327a5212574d115e29f (patch) | |
tree | 189114865f4273ddad92855a7828a5af5f9269fa | |
parent | 1449a2014a4e715a7a52b27caec528a9c802fa5f (diff) | |
download | busybox-d9a761d9c3ed1ec9143b2327a5212574d115e29f.zip busybox-d9a761d9c3ed1ec9143b2327a5212574d115e29f.tar.gz |
Revert svn 15333. If you vfork, you must either exec or exit. (The parent is
blocked until you do so.)
-rw-r--r-- | libbb/vfork_daemon_rexec.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index 05c9c0d..59a2287 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -23,9 +23,12 @@ #ifdef BB_NOMMU -static void vfork_daemon_common(int nochdir, int noclose) +void vfork_daemon_rexec(int nochdir, int noclose, + int argc, char **argv, char *foreground_opt) { int fd; + char **vfork_args; + int a = 0; setsid(); @@ -38,24 +41,7 @@ static void vfork_daemon_common(int nochdir, int noclose) dup2(fd, STDERR_FILENO); if (fd > 2) close(fd); - } -} - -void vfork_daemon(int nochdir, int noclose) -{ - vfork_daemon_common(nochdir, noclose); - - if (vfork()) - exit(0); -} - -void vfork_daemon_rexec(int nochdir, int noclose, - int argc, char **argv, char *foreground_opt) -{ - char **vfork_args; - int a = 0; - - vfork_daemon_common(nochdir, noclose); + } vfork_args = xcalloc(sizeof(char *), argc + 3); vfork_args[a++] = "/bin/busybox"; |