*: make exec failure message more consistent

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2010-06-25 01:46:53 +02:00
parent 2b46fd49b1
commit 41ddd9f606
24 changed files with 40 additions and 40 deletions

View 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]);
}
}

View 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]);
}

View 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! */

View 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]);
}

View 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]);
}

View 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);
}

View 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);
}

View 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)

View 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

View 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]);

View 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]);
}

View 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]);
}
}

View 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]);
}

View 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]);
}

View 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). */

View 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]);
}

View 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) */

View 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);

View 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)

View 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:

View 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]);
}
/*

View 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.

View 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]);
}

View 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]);
}