ifupdown: make it NOMMU-capable
authorDenis Vlasenko <vda.linux@googlemail.com>
Wed, 19 Mar 2008 16:24:17 +0000 (16:24 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Wed, 19 Mar 2008 16:24:17 +0000 (16:24 -0000)
networking/ifupdown.c

index 586c3db63cf15950c7763eb00827550e494b3820..1746819840c55d8d2360bc2b0f91607e5cdbd5aa 100644 (file)
@@ -939,13 +939,13 @@ static int doit(char *str)
                int status;
 
                fflush(NULL);
-               child = fork();
+               child = vfork();
                switch (child) {
                case -1: /* failure */
                        return 0;
                case 0: /* child */
                        execle(DEFAULT_SHELL, DEFAULT_SHELL, "-c", str, NULL, my_environ);
-                       exit(127);
+                       _exit(127);
                }
                safe_waitpid(child, &status, 0);
                if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
@@ -1008,11 +1008,11 @@ static int popen2(FILE **in, FILE **out, char *command, char *param)
        xpiped_pair(outfd);
 
        fflush(NULL);
-       pid = fork();
+       pid = vfork();
 
        switch (pid) {
        case -1:  /* failure */
-               bb_perror_msg_and_die("fork");
+               bb_perror_msg_and_die("vfork");
        case 0:  /* child */
                /* NB: close _first_, then move fds! */
                close(infd.wr);