Improve cfi.c command argument parsing.
authorZachary T Welch <zw@superlucidity.net>
Fri, 23 Oct 2009 09:17:17 +0000 (02:17 -0700)
committerZachary T Welch <zw@superlucidity.net>
Fri, 6 Nov 2009 02:19:18 +0000 (18:19 -0800)
src/flash/cfi.c

index 2d75ff4480577f89fb5b6a8d586d5c172293581b..93e661c2f2eb5edc6286043c698f87672b7cbf3f 100644 (file)
@@ -641,8 +641,12 @@ static int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd,
                return ERROR_FLASH_BANK_INVALID;
        }
 
-       if ((strtoul(args[4], NULL, 0) > CFI_MAX_CHIP_WIDTH)
-               || (strtoul(args[3], NULL, 0) > CFI_MAX_BUS_WIDTH))
+       uint16_t chip_width, bus_width;
+       COMMAND_PARSE_NUMBER(u16, args[3], bus_width);
+       COMMAND_PARSE_NUMBER(u16, args[4], chip_width);
+
+       if ((chip_width > CFI_MAX_CHIP_WIDTH)
+                       || (bus_width > CFI_MAX_BUS_WIDTH))
        {
                LOG_ERROR("chip and bus width have to specified in bytes");
                return ERROR_FLASH_BANK_INVALID;