This is an automated email from Gerrit.

Tarek BOCHKATI ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6424

-- gerrit

commit 5b6ac3559495d388ca3fc4a964c566001543fb32
Author: Tarek BOCHKATI <[email protected]>
Date:   Thu Jul 29 23:47:07 2021 +0100

    flash/at91samd: use COMMAND_PARSE_NUMBER in command handlers
    
    the usage of COMMAND_PARSE_NUMBER is safer in COMMAND_HANDLERs since it 
provides
    better error checking than strto** functions.
    
    Change-Id: I14061cb48da6bac13f9d2896190136f5784b8c07
    Signed-off-by: Tarek BOCHKATI <[email protected]>

diff --git a/src/flash/nor/at91samd.c b/src/flash/nor/at91samd.c
index 76c08d7..feda622 100644
--- a/src/flash/nor/at91samd.c
+++ b/src/flash/nor/at91samd.c
@@ -1058,17 +1058,8 @@ static COMMAND_HELPER(get_u64_from_hexarg, unsigned int 
num, uint64_t *value)
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       if (strlen(CMD_ARGV[num]) >= 3 &&
-               CMD_ARGV[num][0] == '0' &&
-               CMD_ARGV[num][1] == 'x') {
-               char *check = NULL;
-               *value = strtoull(&(CMD_ARGV[num][2]), &check, 16);
-               if ((value == 0 && errno == ERANGE) ||
-                       !check || *check != 0) {
-                       command_print(CMD, "Invalid 64-bit hex value in 
argument %d.",
-                               num + 1);
-                       return ERROR_COMMAND_SYNTAX_ERROR;
-               }
+       if (strlen(CMD_ARGV[num]) >= 3 && CMD_ARGV[num][0] == '0' && 
CMD_ARGV[num][1] == 'x') {
+               COMMAND_PARSE_NUMBER(u64, CMD_ARGV[num], *value);
        } else {
                command_print(CMD, "Argument %d needs to be a hex value.", num 
+ 1);
                return ERROR_COMMAND_SYNTAX_ERROR;

-- 

Reply via email to