This is an automated email from Gerrit.

Krzysztof Hockuba (krzysz...@hockuba.eu) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6048

-- gerrit

commit 032225df6a04c88a29171b01809fca9308d934fb
Author: Krzysztof Hockuba <krzysztof.hock...@itpartners.com.pl>
Date:   Wed Feb 3 23:01:29 2021 +0100

    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 <krzysz...@hockuba.eu>

diff --git a/src/jtag/drivers/jtag_usb_common.c 
b/src/jtag/drivers/jtag_usb_common.c
index 969ea84..309f8c4 100644
--- a/src/jtag/drivers/jtag_usb_common.c
+++ b/src/jtag/drivers/jtag_usb_common.c
@@ -50,7 +50,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t 
*port_path,
                goto done;
        }
 
-       string_length -= 1;
+       string_length -= strnlen(ptr, string_length);
        /* check bus mismatch */
        if (atoi(ptr) != dev_bus)
                goto done;
@@ -68,7 +68,7 @@ bool jtag_usb_location_equal(uint8_t dev_bus, uint8_t 
*port_path,
                        break;
 
                path_step++;
-               string_length -= 2;
+               string_length -= strnlen(ptr, string_length) + 1;
        };
 
        /* walked the full path, all elements match */

-- 


_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to