[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