From 77377af7cb038876829f2421dba5977718ca154f Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Tue, 21 Jun 2011 15:04:05 +0200 Subject: [PATCH] Free the device list in ftdi_usb_find_all This fixes the leak with examples/find_all --- src/ftdi.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ftdi.c b/src/ftdi.c index 0893421..33b6a50 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -289,13 +289,13 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devli struct libusb_device_descriptor desc; if (libusb_get_device_descriptor(dev, &desc) < 0) - ftdi_error_return(-6, "libusb_get_device_descriptor() failed"); + ftdi_error_return_free_device_list(-6, "libusb_get_device_descriptor() failed", devs); if (desc.idVendor == vendor && desc.idProduct == product) { *curdev = (struct ftdi_device_list*)malloc(sizeof(struct ftdi_device_list)); if (!*curdev) - ftdi_error_return(-3, "out of memory"); + ftdi_error_return_free_device_list(-3, "out of memory", devs); (*curdev)->next = NULL; (*curdev)->dev = dev; @@ -304,7 +304,7 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devli count++; } } - + libusb_free_device_list(devs,1); return count; } -- 1.7.1