[PATCH] stm32mp: stm32prog: fix the last character of dfu_alt_add third parameter

Patrice CHOTARD patrice.chotard at foss.st.com
Fri Jun 17 08:01:55 CEST 2022


Hi Patrick

On 6/16/22 18:37, Patrick Delaunay wrote:
> The third parameter of dfu_alt_add(), the string description of alternate,
> is build in stm32prog_alt_add() with a unnecessary character ';' at the
> end of the string.
> 
> This separator was required in the first implementation of
> dfu_alt_add() but is no more needed in the current implementation;
> this separator is managed only in dfu_config_interfaces() which call
> dfu_alt_add() for this parameter without this separator.
> 
> And since the commit 53b406369e9d ("DFU: Check the number of arguments
> and argument string strictly"), this added character cause an error when
> the stm32prog command is executed because the third parameter of
> dfu_alt_add() must be a string with a numerical value; 's' must be NULL
> in the result of call in dfu_fill_entity_mmc():
>   third_arg = simple_strtoul(argv[2], &s, 0);
> 
> Fixes: 53b406369e9d ("DFU: Check the number of arguments and argument string strictly")
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
> 
>  arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
> index b7111123ba..c391b6c7ab 100644
> --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
> +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
> @@ -1262,7 +1262,7 @@ static int stm32prog_alt_add(struct stm32prog_data *data,
>  				   "raw 0x%llx 0x%llx",
>  				   part->addr, nb_blk);
>  		offset += snprintf(buf + offset, ALT_BUF_LEN - offset,
> -				   " mmcpart %d;", -(part->part_id));
> +				   " mmcpart %d", -(part->part_id));
>  	} else {
>  		if (part->part_type == PART_SYSTEM &&
>  		    (part->target == STM32PROG_NAND ||
> @@ -1280,7 +1280,7 @@ static int stm32prog_alt_add(struct stm32prog_data *data,
>  			offset += snprintf(buf + offset, ALT_BUF_LEN - offset,
>  					   " %d", part->dev_id);
>  		offset += snprintf(buf + offset, ALT_BUF_LEN - offset,
> -				   " %d;", part->part_id);
> +				   " %d", part->part_id);
>  	}
>  	ret = -ENODEV;
>  	switch (part->target) {

Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>

Thanks
Patrice


More information about the U-Boot mailing list