flash/stm32l4x: use COMMAND_PARSE_NUMBER in command handlers
authorTarek BOCHKATI <tarek.bouchkati@gmail.com>
Thu, 29 Jul 2021 21:05:18 +0000 (22:05 +0100)
committerPaul Fertser <fercerpav@gmail.com>
Sun, 22 Aug 2021 10:45:17 +0000 (10:45 +0000)
the usage of COMMAND_PARSE_NUMBER is safer in COMMAND_HANDLERs since it provides
better error checking than strto** functions.

Change-Id: I7e113b06b74f2d8d9cc4c0ce1957994a1c49c964
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6419
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: jenkins
src/flash/nor/stm32l4x.c

index 7d6c900283b14eae3d91147a8f795c1092c4f479..d770cdfa57d61f9ed05a212e8142ee60e181b2af 100644 (file)
@@ -1734,7 +1734,7 @@ COMMAND_HANDLER(stm32l4_handle_option_read_command)
        uint32_t reg_offset, reg_addr;
        uint32_t value = 0;
 
-       reg_offset = strtoul(CMD_ARGV[1], NULL, 16);
+       COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], reg_offset);
        reg_addr = stm32l4_get_flash_reg(bank, reg_offset);
 
        retval = stm32l4_read_flash_reg(bank, reg_offset, &value);
@@ -1762,10 +1762,11 @@ COMMAND_HANDLER(stm32l4_handle_option_write_command)
        uint32_t value = 0;
        uint32_t mask = 0xFFFFFFFF;
 
-       reg_offset = strtoul(CMD_ARGV[1], NULL, 16);
-       value = strtoul(CMD_ARGV[2], NULL, 16);
+       COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], reg_offset);
+       COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], value);
+
        if (CMD_ARGC > 3)
-               mask = strtoul(CMD_ARGV[3], NULL, 16);
+               COMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], mask);
 
        command_print(CMD, "%s Option written.\n"
                                "INFO: a reset or power cycle is required "