*: make exec failure message more consistent
No binary (build failed)
—
(log yok)
| @@ -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]); |
| } | |
| } | |
| @@ -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]); |
| } | |
| @@ -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! */ | |
| @@ -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]); |
| } | |
| @@ -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]); |
| } | |
| @@ -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); |
| } | |
| @@ -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); |
| } | |
| @@ -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) | |
| @@ -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 | |
| @@ -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]); | |
| @@ -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]); |
| } | |
| @@ -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]); |
| } | |
| } | |
| @@ -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]); |
| } | |
| @@ -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]); |
| } | |
| @@ -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). */ | |
| @@ -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]); |
| } | |
| @@ -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) */ | |
| @@ -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); | |
| @@ -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) | |
| @@ -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: | |
| @@ -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]); |
| } | |
| /* | |
| @@ -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. | |
| @@ -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]); |
| } | |
| @@ -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]); | |
| } | |