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: fd75e9e542
(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>
This commit is contained in:
parent
ea2e26f7d5
commit
43e1d60e77
|
@ -362,7 +362,7 @@ static int cmsis_dap_usb_open(struct cmsis_dap *dap, uint16_t vids[], uint16_t p
|
||||||
if (err)
|
if (err)
|
||||||
LOG_WARNING("could not claim interface: %s", libusb_strerror(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) {
|
if (!dap->bdata) {
|
||||||
LOG_ERROR("unable to allocate memory");
|
LOG_ERROR("unable to allocate memory");
|
||||||
libusb_release_interface(dev_handle, interface_num);
|
libusb_release_interface(dev_handle, interface_num);
|
||||||
|
|
Loading…
Reference in New Issue