aboutsummaryrefslogtreecommitdiff
path: root/src/jtag
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2023-12-10 15:03:46 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2024-01-21 21:26:03 +0000
commit43e1d60e77b7984e21a9250a530a34f64bab78c0 (patch)
tree17563766a028e130cdfd8e3f1436866b10c78a9c /src/jtag
parentea2e26f7d521f5755b4bfda7bf12d99650277421 (diff)
downloadriscv-openocd-43e1d60e77b7984e21a9250a530a34f64bab78c0.zip
riscv-openocd-43e1d60e77b7984e21a9250a530a34f64bab78c0.tar.gz
riscv-openocd-43e1d60e77b7984e21a9250a530a34f64bab78c0.tar.bz2
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 uninitialized. Use calloc() to zero whole struct cmsis_dap_backend_data. Fixes: fd75e9e54270 (jtag/drivers/cmsis_dap_bulk: use asynchronous libusb transfer) Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: I0e489757d82d10ed7416c5e8c215e1facc7f8093 Reviewed-on: https://review.openocd.org/c/openocd/+/8045 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src/jtag')
-rw-r--r--src/jtag/drivers/cmsis_dap_usb_bulk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/jtag/drivers/cmsis_dap_usb_bulk.c b/src/jtag/drivers/cmsis_dap_usb_bulk.c
index 92a972a..8d0cb54 100644
--- a/src/jtag/drivers/cmsis_dap_usb_bulk.c
+++ b/src/jtag/drivers/cmsis_dap_usb_bulk.c
@@ -362,7 +362,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);