This is an automated email from Gerrit.

"Tomas Vanek <van...@fbl.cz>" just uploaded a new patch set to Gerrit, which 
you can find at https://review.openocd.org/c/openocd/+/8045

-- gerrit

commit 5e793d260ddd5a8a6c534106d937729a0e962195
Author: Tomas Vanek <van...@fbl.cz>
Date:   Sun Dec 10 15:03:46 2023 +0100

    jtag/drivers/cmsis_dap_usb_bulk: fix clang warning
    
    Clang static analyzer warnings
    "1st function call argument is an uninitialized value"
    on the first libusb_free_transfer() parameter (lines 423, 424)
    could turn into a real problem in a corner case:
    If allocation of a libusb transfer struct fails, the pointers of not yet
    allocated transfers remain uninicialized.
    
    Use calloc() to zero whole struct cmsis_dap_backend_data.
    Remove now useless init of malloc_fallback.
    
    Fixes: fd75e9e54270 (jtag/drivers/cmsis_dap_bulk: use asynchronous libusb 
transfer)
    Signed-off-by: Tomas Vanek <van...@fbl.cz>
    Change-Id: I0e489757d82d10ed7416c5e8c215e1facc7f8093

diff --git a/src/jtag/drivers/cmsis_dap_usb_bulk.c 
b/src/jtag/drivers/cmsis_dap_usb_bulk.c
index fd635685cd..dc3fc75e07 100644
--- a/src/jtag/drivers/cmsis_dap_usb_bulk.c
+++ b/src/jtag/drivers/cmsis_dap_usb_bulk.c
@@ -374,7 +374,7 @@ static int cmsis_dap_usb_open(struct cmsis_dap *dap, 
uint16_t vids[], uint16_t p
                        if (err)
                                LOG_WARNING("could not claim interface: %s", 
libusb_strerror(err));
 
-                       dap->bdata = malloc(sizeof(struct 
cmsis_dap_backend_data));
+                       dap->bdata = calloc(1, sizeof(struct 
cmsis_dap_backend_data));
                        if (!dap->bdata) {
                                LOG_ERROR("unable to allocate memory");
                                libusb_release_interface(dev_handle, 
interface_num);
@@ -388,9 +388,6 @@ static int cmsis_dap_usb_open(struct cmsis_dap *dap, 
uint16_t vids[], uint16_t p
                        dap->bdata->ep_out = ep_out;
                        dap->bdata->ep_in = ep_in;
                        dap->bdata->interface = interface_num;
-#if HAVE_LIBUSB_DEV_MEM_ALLOC
-                       dap->bdata->malloc_fallback = false;
-#endif
 
                        for (unsigned int idx = 0; idx < MAX_PENDING_REQUESTS; 
idx++) {
                                dap->bdata->command_transfers[idx].status = 
CMSIS_DAP_TRANSFER_IDLE;

-- 

Reply via email to