From c1130cc3a68f158632ce0a92d3ff61b7d6795e69 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Sat, 10 Dec 2011 17:59:20 +0100 Subject: [PATCH] Fix memory leakage pathe with no V2 device found --- src/stlink-usb.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/stlink-usb.c b/src/stlink-usb.c index 58c4e1d..1320831 100644 --- a/src/stlink-usb.c +++ b/src/stlink-usb.c @@ -576,9 +576,8 @@ stlink_t* stlink_open_usb(const int verbose) { slu->usb_handle = libusb_open_device_with_vid_pid(slu->libusb_ctx, USB_ST_VID, USB_STLINK_32L_PID); if (slu->usb_handle == NULL) { // TODO - free usb context too... - free(slu); WLOG("Couldn't find any ST-Link/V2 devices"); - return NULL; + goto on_error; } if (libusb_kernel_driver_active(slu->usb_handle, 0) == 1) { @@ -660,6 +659,8 @@ on_libusb_error: return sl; on_error: + if( slu->libusb_ctx) + libusb_exit(slu->libusb_ctx); if (sl != NULL) free(sl); if (slu != NULL) free(slu); return 0; -- 2.30.2