Revert svn 15333. If you vfork, you must either exec or exit. (The parent is
blocked until you do so.)
This commit is contained in:
@@ -23,9 +23,12 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifdef BB_NOMMU
|
#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;
|
int fd;
|
||||||
|
char **vfork_args;
|
||||||
|
int a = 0;
|
||||||
|
|
||||||
setsid();
|
setsid();
|
||||||
|
|
||||||
@@ -39,23 +42,6 @@ static void vfork_daemon_common(int nochdir, int noclose)
|
|||||||
if (fd > 2)
|
if (fd > 2)
|
||||||
close(fd);
|
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 = xcalloc(sizeof(char *), argc + 3);
|
||||||
vfork_args[a++] = "/bin/busybox";
|
vfork_args[a++] = "/bin/busybox";
|
||||||
|
Reference in New Issue
Block a user