]> sigrok.org Git - libsigrok.git/commit
lascar-el-usb: lascar_scan(): Fix USB device list leak
authorLars-Peter Clausen <redacted>
Fri, 6 May 2016 11:22:19 +0000 (13:22 +0200)
committerLars-Peter Clausen <redacted>
Mon, 9 May 2016 11:32:23 +0000 (13:32 +0200)
commitceb2da179f9446b0e61bde7cf7be9133b25683cc
tree7715ccae41b5dbb9ca0f8b01e25490b3e5a9d28b
parent6266deb84d6b5d8ca61b685edae339c24184f157
lascar-el-usb: lascar_scan(): Fix USB device list leak

lascar_scan() calls libusb_get_device_list() but never the matching
libusb_free_device_list(). This will leak the memory allocated for the
device list as well as all the devices. To fix this add the missing
libusb_free_device_list().

While we are at it also make sure to handle errors returned by
libusb_get_device_list().

The issue was discovered using the following coccinelle semantic patch:
// <smpl>
@@
identifier devlist;
expression ctx, ret;
statement S;
@@
(
 libusb_get_device_list(ctx, &devlist);
|
 ret = libusb_get_device_list(ctx, &devlist);
 if (ret < 0) S
)
... when != libusb_free_device_list(devlist, ...)
*return ...;
// </smpl>

Signed-off-by: Lars-Peter Clausen <redacted>
src/hardware/lascar-el-usb/protocol.c