[U-Boot] [PATCH] Fix the behaviour of the 'run' command
Simon Glass
sjg at chromium.org
Mon Apr 23 21:56:37 CEST 2012
Hi Timo,
On Mon, Apr 23, 2012 at 9:57 PM, Timo Ketola <timo at exertus.fi> wrote:
> If one command fails, 'run' command should terminate and not execute
> any remaining variables.
>
> Signed-off-by: Timo Ketola <timo at exertus.fi>
Tested on sandbox after a bit of investigation.
Tested-by: Simon Glass <sjg at chromium.org>
Acked-by: Simon Glass <sjg at chromium.org>
This is a clear bug, since cmd_process() returns 1 on failure, but we
need builtin_run_command() to return -1. I suspect this might be the
problem that Wolfgang found some months ago, although perhaps in a
more subtle form.
We really need some tests for this sort of thing - I did create a few
for the new run_command_list(), but will make time to add some tests
for standard run_command() also.
Thanks for finding and fixing this.
Regards,
Simon
> ---
>
> This is based on u-boot-imx.git next. I hope that doesn't cause too
> much trouble.
>
> common/main.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/common/main.c b/common/main.c
> index db181d3..3b9e39a 100644
> --- a/common/main.c
> +++ b/common/main.c
> @@ -1338,7 +1338,8 @@ static int builtin_run_command(const char *cmd, int flag)
> continue;
> }
>
> - rc = cmd_process(flag, argc, argv, &repeatable);
> + if (cmd_process(flag, argc, argv, &repeatable))
> + rc = -1;
>
> /* Did the user stop this? */
> if (had_ctrlc ())
> --
> 1.7.5.4
>
More information about the U-Boot
mailing list