stm32mp: stm32prog: fix the last character of dfu_alt_add third parameter
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Thu, 16 Jun 2022 16:37:59 +0000 (18:37 +0200)
committerPatrick Delaunay <patrick.delaunay@foss.st.com>
Fri, 17 Jun 2022 07:30:19 +0000 (09:30 +0200)
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@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c

index b711112..c391b6c 100644 (file)
@@ -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) {