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; --