summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2020-02-27 09:50:18 +0000
committerDenys Vlasenko <vda.linux@googlemail.com>2020-04-30 16:42:58 +0200
commitda7a6dbfa5d78e3d5cec5906b402908505d0fcf9 (patch)
tree447621855bebf9cadd2ce2c47c944060988a87ac
parentd1b75e1842b3e4f61daae2fb8a64d784a553f15c (diff)
ash: fix build failure when command built-in is disabled
Since commit 7eb8eecbb (ash: eval: Add assignment built-in support again) building BusyBox with the 'command' built-in disabled fails. parse_command_args() only needs to be called when the 'command' built-in is run. Which it won't be if it's disabled. v2: Avoiding infinite loops is good, too. Thanks, Harald van Dijk. Reported-by: Deweloper <deweloper@wp.pl> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--shell/ash.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c
index d0d99f60e..a11b1d67d 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -8675,7 +8675,6 @@ typecmd(int argc UNUSED_PARAM, char **argv)
return err;
}
-#if ENABLE_ASH_CMDCMD
static struct strlist *
fill_arglist(struct arglist *arglist, union node **argpp)
{
@@ -8692,6 +8691,7 @@ fill_arglist(struct arglist *arglist, union node **argpp)
return *lastp;
}
+#if ENABLE_ASH_CMDCMD
/* Is it "command [-p] PROG ARGS" bltin, no other opts? Return ptr to "PROG" if yes */
static int
parse_command_args(struct arglist *arglist, union node **argpp, const char **path)
@@ -10190,11 +10190,13 @@ evalcommand(union node *cmd, int flags)
vlocal = !spclbltin;
}
cmd_is_exec = cmdentry.u.cmd == EXECCMD;
+#if ENABLE_ASH_CMDCMD
if (cmdentry.u.cmd != COMMANDCMD)
break;
cmd_flag = parse_command_args(&arglist, &argp, &path);
if (!cmd_flag)
+#endif
break;
}