Fix a vfork bug, by Nick Fedchik and Vladimir N. Oleynik
authorGlenn L McGrath <bug1@ihug.co.nz>
Thu, 21 Nov 2002 22:17:11 +0000 (22:17 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Thu, 21 Nov 2002 22:17:11 +0000 (22:17 -0000)
libbb/run_parts.c

index 8399a6afb6790a06b88ceb5674d8e45b77f2ad3d..6df51a14edb51ebc95e279516943b56cb1ef4cb3 100644 (file)
@@ -50,6 +50,7 @@ extern int run_parts(char **args, const unsigned char test_mode)
        struct dirent **namelist = 0;
        struct stat st;
        char *filename;
+       char *arg0 = args[0];
        int entries;
        int i;
        int exitstatus = 0;
@@ -60,15 +61,15 @@ extern int run_parts(char **args, const unsigned char test_mode)
        (void) &exitstatus;
 #endif
        /* scandir() isn't POSIX, but it makes things easy. */
-       entries = scandir(args[0], &namelist, valid_name, alphasort);
+       entries = scandir(arg0, &namelist, valid_name, alphasort);
 
        if (entries == -1) {
-               perror_msg_and_die("failed to open directory %s", args[0]);
+               perror_msg_and_die("failed to open directory %s", arg0);
        }
 
        for (i = 0; i < entries; i++) {
 
-               filename = concat_path_file(args[0], namelist[i]->d_name);
+               filename = concat_path_file(arg0, namelist[i]->d_name);
 
                if (stat(filename, &st) < 0) {
                        perror_msg_and_die("failed to stat component %s", filename);