Fix jtag_usb_location_equal for path members > 9

In case an USB location path contains path members
larger than 9. The string_length variable is regardless
decremented by 2 with assumption that the member is
one digit length. For exmaple 1-12.2 will fail.
This patch uses strlen to calculate
digits in a path member.

Change-Id: I9c26a04d0c6af13fec65157f222599497294e2b2
Signed-off-by: Krzysztof Hockuba <krzysztof@hockuba.eu>
Reviewed-on: http://openocd.zylin.com/6048
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
Krzysztof Hockuba 2021-02-03 23:01:29 +01:00 committed by Antonio Borneo
parent f68ade529a
commit 84a2302af7
1 changed files with 2 additions and 2 deletions

View File

@ -50,7 +50,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t *port_path,
goto done; goto done;
} }
string_length -= 1; string_length -= strnlen(ptr, string_length);
/* check bus mismatch */ /* check bus mismatch */
if (atoi(ptr) != dev_bus) if (atoi(ptr) != dev_bus)
goto done; goto done;
@ -68,7 +68,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t *port_path,
break; break;
path_step++; path_step++;
string_length -= 2; string_length -= strnlen(ptr, string_length) + 1;
}; };
/* walked the full path, all elements match */ /* walked the full path, all elements match */