*: make exec failure message more consistent
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 24 Jun 2010 23:46:53 +0000 (01:46 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 24 Jun 2010 23:46:53 +0000 (01:46 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
24 files changed:
console-tools/openvt.c
coreutils/chroot.c
coreutils/env.c
coreutils/nice.c
coreutils/nohup.c
debianutils/start_stop_daemon.c
libbb/run_shell.c
libbb/vfork_daemon_rexec.c
mailutils/mail.c
mailutils/mime.c
miscutils/chrt.c
miscutils/ionice.c
miscutils/setsid.c
miscutils/taskset.c
miscutils/time.c
miscutils/timeout.c
networking/httpd.c
networking/ifupdown.c
networking/inetd.c
networking/nc_bloaty.c
networking/tcpudp.c
printutils/lpd.c
runit/chpst.c
selinux/runcon.c

index 7bd6072..6f58916 100644 (file)
@@ -98,7 +98,7 @@ static NOINLINE void vfork_child(char **argv)
                //bb_error_msg("VT's sid %d", tcgetsid(0));
                //bb_error_msg("VT's pgrp %d", tcgetpgrp(0));
                BB_EXECVP(argv[0], argv);
-               bb_perror_msg_and_die("exec %s", argv[0]);
+               bb_perror_msg_and_die("can't execute '%s'", argv[0]);
        }
 }
 
index f7228a6..bc0b1f8 100644 (file)
@@ -30,6 +30,6 @@ int chroot_main(int argc UNUSED_PARAM, char **argv)
                argv[1] = (char *) "-i";
        }
 
-       BB_EXECVP(*argv, argv);
-       bb_perror_msg_and_die("can't execute '%s'", *argv);
+       BB_EXECVP(argv[0], argv);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 9635d2b..c6ba04d 100644 (file)
@@ -76,11 +76,11 @@ int env_main(int argc UNUSED_PARAM, char **argv)
                ++argv;
        }
 
-       if (*argv) {
-               BB_EXECVP(*argv, argv);
+       if (argv[0]) {
+               BB_EXECVP(argv[0], argv);
                /* SUSv3-mandated exit codes. */
                xfunc_error_retval = (errno == ENOENT) ? 127 : 126;
-               bb_simple_perror_msg_and_die(*argv);
+               bb_perror_msg_and_die("can't execute '%s'", argv[0]);
        }
 
        if (environ) { /* clearenv() may set environ == NULL! */
index d24a95b..0f70f10 100644 (file)
@@ -47,9 +47,8 @@ int nice_main(int argc, char **argv)
                }
        }
 
-       BB_EXECVP(*argv, argv);         /* Now exec the desired program. */
-
+       BB_EXECVP(argv[0], argv);
        /* The exec failed... */
        xfunc_error_retval = (errno == ENOENT) ? 127 : 126; /* SUSv3 */
-       bb_simple_perror_msg_and_die(*argv);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 4f6385f..1027ada 100644 (file)
@@ -75,6 +75,7 @@ int nohup_main(int argc UNUSED_PARAM, char **argv)
 
        signal(SIGHUP, SIG_IGN);
 
-       BB_EXECVP(argv[1], argv+1);
-       bb_simple_perror_msg_and_die(argv[1]);
+       argv++;
+       BB_EXECVP(argv[0], argv);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 0a08025..3ded758 100644 (file)
@@ -448,5 +448,5 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv)
        }
 #endif
        execvp(startas, argv);
-       bb_perror_msg_and_die("can't start %s", startas);
+       bb_perror_msg_and_die("can't execute '%s'", startas);
 }
index 6f98bd6..4608a24 100644 (file)
@@ -86,5 +86,5 @@ void FAST_FUNC run_shell(const char *shell, int loginshell, const char *command,
                freecon(current_sid);
 #endif
        execv(shell, (char **) args);
-       bb_perror_msg_and_die("can't run '%s'", shell);
+       bb_perror_msg_and_die("can't execute '%s'", shell);
 }
index 07024f5..082f0f6 100644 (file)
@@ -249,7 +249,7 @@ void FAST_FUNC re_exec(char **argv)
         * "we have (already) re-execed, don't do it again" flag */
        argv[0][0] |= 0x80;
        execv(bb_busybox_exec_path, argv);
-       bb_perror_msg_and_die("exec %s", bb_busybox_exec_path);
+       bb_perror_msg_and_die("can't execute '%s'", bb_busybox_exec_path);
 }
 
 pid_t FAST_FUNC fork_or_rexec(char **argv)
index 64a5b99..49e72c3 100644 (file)
@@ -67,8 +67,8 @@ void FAST_FUNC launch_helper(const char **argv)
        if (!G.helper_pid) {
                // child: try to execute connection helper
                // NB: SIGCHLD & SIGALRM revert to SIG_DFL on exec
-               BB_EXECVP(*argv, (char **)argv);
-               _exit(127);
+               BB_EXECVP(argv[0], (char **)argv);
+               bb_perror_msg_and_die("can't execute '%s'", argv[0]);
        }
 
        // parent
index ee14780..654b873 100644 (file)
@@ -288,8 +288,8 @@ static int parse(const char *boundary, char **argv)
                                        xsetenv("CHARSET", charset);
                                        xsetenv("ENCODING", encoding);
                                        xsetenv("FILENAME", filename);
-                                       BB_EXECVP(*argv, argv);
-                                       _exit(EXIT_FAILURE);
+                                       BB_EXECVP(argv[0], argv);
+                                       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
                                }
                                // parent dumps to fd[1]
                                close(fd[0]);
index cc5660b..e2b7f8a 100644 (file)
@@ -115,9 +115,9 @@ int chrt_main(int argc UNUSED_PARAM, char **argv)
        if (sched_setscheduler(pid, policy, &sp) < 0)
                bb_perror_msg_and_die("can't %cet pid %d's policy", 's', pid);
 
-       if (!*argv) /* "-p <priority> <pid> [...]" */
+       if (!argv[0]) /* "-p <priority> <pid> [...]" */
                goto print_rt_info;
 
-       BB_EXECVP(*argv, argv);
-       bb_simple_perror_msg_and_die(*argv);
+       BB_EXECVP(argv[0], argv);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 361c141..8393cd8 100644 (file)
@@ -89,9 +89,9 @@ int ionice_main(int argc UNUSED_PARAM, char **argv)
                pri |= (ioclass << IOPRIO_CLASS_SHIFT);
                if (ioprio_set(IOPRIO_WHO_PROCESS, pid, pri) == -1)
                        bb_perror_msg_and_die("ioprio_%cet", 's');
-               if (*argv) {
-                       BB_EXECVP(*argv, argv);
-                       bb_simple_perror_msg_and_die(*argv);
+               if (argv[0]) {
+                       BB_EXECVP(argv[0], argv);
+                       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
                }
        }
 
index fd3283e..60ee062 100644 (file)
@@ -44,6 +44,7 @@ int setsid_main(int argc UNUSED_PARAM, char **argv)
                setsid();
        }
 
-       BB_EXECVP(argv[1], argv + 1);
-       bb_simple_perror_msg_and_die(argv[1]);
+       argv++;
+       BB_EXECVP(argv[0], argv);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index a0bbf0a..2891003 100644 (file)
@@ -129,9 +129,9 @@ int taskset_main(int argc UNUSED_PARAM, char **argv)
        if (sched_setaffinity(pid, sizeof(mask), &mask))
                bb_perror_msg_and_die("can't %cet pid %d's affinity", 's', pid);
 
-       if (!*argv) /* "-p <aff> <pid> [...ignored...]" */
+       if (!argv[0]) /* "-p <aff> <pid> [...ignored...]" */
                goto print_aff; /* print new affinity and exit */
 
-       BB_EXECVP(*argv, argv);
-       bb_simple_perror_msg_and_die(*argv);
+       BB_EXECVP(argv[0], argv);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 6946c86..f5d1e15 100644 (file)
@@ -380,7 +380,7 @@ static void run_command(char *const *cmd, resource_t *resp)
                   versus merely warnings if the cast is left off.  */
                BB_EXECVP(cmd[0], cmd);
                xfunc_error_retval = (errno == ENOENT ? 127 : 126);
-               bb_error_msg_and_die("can't run '%s'", cmd[0]);
+               bb_perror_msg_and_die("can't execute '%s'", cmd[0]);
        }
 
        /* Have signals kill the child but not self (if possible).  */
index 83ae56e..273d269 100644 (file)
@@ -111,5 +111,5 @@ int timeout_main(int argc UNUSED_PARAM, char **argv)
        argv[1] = sv2;
 #endif
        BB_EXECVP(argv[0], argv);
-       bb_perror_msg_and_die("exec '%s'", argv[0]);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 6dbc219..bab7b99 100644 (file)
@@ -1474,7 +1474,7 @@ static void send_cgi_and_exit(
                 * in the current directory */
                execv(argv[0], argv);
                if (verbose)
-                       bb_perror_msg("exec %s", argv[0]);
+                       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
  error_execing_cgi:
                /* send to stdout
                 * (we are CGI here, our stdout is pumped to the net) */
index 2f3dd1d..714d2a1 100644 (file)
@@ -1053,7 +1053,7 @@ static int popen2(FILE **in, FILE **out, char *command, char *param)
                xmove_fd(infd.rd, 0);
                xmove_fd(outfd.wr, 1);
                BB_EXECVP(command, argv);
-               _exit(127);
+               bb_perror_msg_and_die("can't execute '%s'", command);
        }
        /* parent */
        close(infd.rd);
index 7aa6b7b..6d21e18 100644 (file)
@@ -1380,7 +1380,7 @@ int inetd_main(int argc UNUSED_PARAM, char **argv)
                        sigaction_set(SIGPIPE, &saved_pipe_handler);
                        restore_sigmask(&omask);
                        BB_EXECVP(sep->se_program, sep->se_argv);
-                       bb_perror_msg("exec %s", sep->se_program);
+                       bb_perror_msg_and_die("can't execute '%s'", sep->se_program);
  do_exit1:
                        /* eat packet in udp case */
                        if (sep->se_socktype != SOCK_STREAM)
index e14d512..8d27e96 100644 (file)
@@ -230,7 +230,7 @@ static int doexec(char **proggie)
        /* dup2(0, 2); - do we *really* want this? NO!
         * exec'ed prog can do it yourself, if needed */
        execvp(proggie[0], proggie);
-       bb_perror_msg_and_die("exec");
+       bb_perror_msg_and_die("can't execute '%s'", proggie[0]);
 }
 
 /* connect_w_timeout:
index b32fad6..4e47567 100644 (file)
@@ -504,7 +504,7 @@ int tcpudpsvd_main(int argc UNUSED_PARAM, char **argv)
 #else
        BB_EXECVP(argv[0], argv);
 #endif
-       bb_perror_msg_and_die("exec '%s'", argv[0]);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
 
 /*
index 43c2294..15f1ba2 100644 (file)
@@ -181,8 +181,8 @@ int lpd_main(int argc UNUSED_PARAM, char *argv[])
                        // this call reopens stdio fds to "/dev/null"
                        // (no daemonization is done)
                        bb_daemonize_or_rexec(DAEMON_DEVNULL_STDIO | DAEMON_ONLY_SANITIZE, NULL);
-                       BB_EXECVP(*argv, argv);
-                       exit(127);
+                       BB_EXECVP(argv[0], argv);
+                       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
                }
 
                // validate input.
index 1a68eb7..028a28d 100644 (file)
@@ -383,5 +383,5 @@ int chpst_main(int argc UNUSED_PARAM, char **argv)
                close(STDERR_FILENO);
 
        BB_EXECVP(argv[0], argv);
-       bb_perror_msg_and_die("exec %s", argv[0]);
+       bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }
index 4afd111..f8ca9a6 100644 (file)
@@ -133,6 +133,5 @@ int runcon_main(int argc UNUSED_PARAM, char **argv)
                                     context_str(con));
 
        execvp(argv[0], argv);
-
        bb_perror_msg_and_die("can't execute '%s'", argv[0]);
 }