>>>>> "Xiaofan" == Xiaofan Chen <xiaofanc@xxxxxxxxx> writes:
Xiaofan> On Mon, Jun 20, 2011 at 11:25 PM, Uwe Bonnes
Xiaofan> <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>> I guess the memory leak happens inside our versions of libusb. On my
>> system (Opensuse 11.4) with libusb-1_0-0-1.0.8-4.1.x86_64 and e.g.
>> baudtest I still get:
>>
Xiaofan> What if you try the latest libusb-stuge.git which is currently
Xiaofan> the development branch for libusb?
Xiaofan> http://git.libusb.org/?p=libusb-stuge.git;a=summary;js=1
We called libusb_init() several times in our code and so leak the the USB
context. So these leak were with libftdi.
--
Uwe Bonnes bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From 43c552b99e95cd8afd9e51acb685cc495524429f Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 21 Jun 2011 14:18:13 +0200
Subject: Only ftdi_init may call libusb_init, or we leak an USB Context
---
src/ftdi.c | 8 --------
1 files changed, 0 insertions(+), 8 deletions(-)
diff --git a/src/ftdi.c b/src/ftdi.c
index 3301844..d5c4fbd 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -607,7 +607,6 @@ int ftdi_usb_open(struct ftdi_context *ftdi, int vendor,
int product)
\retval -7: set baudrate failed
\retval -8: get product description failed
\retval -9: get serial number failed
- \retval -11: libusb_init() failed
\retval -12: libusb_get_device_list() failed
\retval -13: libusb_get_device_descriptor() failed
*/
@@ -652,9 +651,6 @@ int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int
vendor, int product,
if (ftdi == NULL)
ftdi_error_return(-11, "ftdi context invalid");
- if (libusb_init(&ftdi->usb_ctx) < 0)
- ftdi_error_return(-11, "libusb_init() failed");
-
if (libusb_get_device_list(ftdi->usb_ctx, &devs) < 0)
ftdi_error_return(-12, "libusb_get_device_list() failed");
@@ -730,7 +726,6 @@ int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int
vendor, int product,
\note The description format may be extended in later versions.
\retval 0: all fine
- \retval -1: libusb_init() failed
\retval -2: libusb_get_device_list() failed
\retval -3: usb device not found
\retval -4: unable to open device
@@ -758,9 +753,6 @@ int ftdi_usb_open_string(struct ftdi_context *ftdi, const
char* description)
unsigned int bus_number, device_address;
int i = 0;
- if (libusb_init (&ftdi->usb_ctx) < 0)
- ftdi_error_return(-1, "libusb_init() failed");
-
if (libusb_get_device_list(ftdi->usb_ctx, &devs) < 0)
ftdi_error_return(-2, "libusb_get_device_list() failed");
--
1.7.3.4
--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx
|