Skip to content

Commit 84a2302

Browse files
Krzysztof Hockubaborneoa
authored andcommitted
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 <[email protected]> Reviewed-on: http://openocd.zylin.com/6048 Tested-by: jenkins Reviewed-by: Antonio Borneo <[email protected]>
1 parent f68ade5 commit 84a2302

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/jtag/drivers/jtag_usb_common.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t *port_path,
5050
goto done;
5151
}
5252

53-
string_length -= 1;
53+
string_length -= strnlen(ptr, string_length);
5454
/* check bus mismatch */
5555
if (atoi(ptr) != dev_bus)
5656
goto done;
@@ -68,7 +68,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t *port_path,
6868
break;
6969

7070
path_step++;
71-
string_length -= 2;
71+
string_length -= strnlen(ptr, string_length) + 1;
7272
};
7373

7474
/* walked the full path, all elements match */

0 commit comments

Comments
 (0)