hush: fix exitcode on exec failure with EACCES - should be 126
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
c775f829db
commit
04465dad66
@ -6735,13 +6735,17 @@ static void exec_builtin(char ***to_free,
|
||||
static void execvp_or_die(char **argv) NORETURN;
|
||||
static void execvp_or_die(char **argv)
|
||||
{
|
||||
int e;
|
||||
debug_printf_exec("execing '%s'\n", argv[0]);
|
||||
/* Don't propagate SIG_IGN to the child */
|
||||
if (SPECIAL_JOBSTOP_SIGS != 0)
|
||||
switch_off_special_sigs(G.special_sig_mask & SPECIAL_JOBSTOP_SIGS);
|
||||
execvp(argv[0], argv);
|
||||
e = 2;
|
||||
if (errno == EACCES) e = 126;
|
||||
if (errno == ENOENT) e = 127;
|
||||
bb_perror_msg("can't execute '%s'", argv[0]);
|
||||
_exit(127); /* bash compat */
|
||||
_exit(e);
|
||||
}
|
||||
|
||||
#if ENABLE_HUSH_MODE_X
|
||||
|
Loading…
Reference in New Issue
Block a user