https://sourceforge.net/p/libmtp/patches/64/
initialize the global usb1 context only once to avoid memory leaks.
diff --git a/src/libusb1-glue.c b/src/libusb1-glue.c
index 333a34a..dd3f7a5 100644
--- a/src/libusb1-glue.c
+++ b/src/libusb1-glue.c
@@ -135,15 +135,22 @@
static LIBMTP_error_number_t init_usb()
{
+ static int libusb1_initialized = 0;
+
/*
* Some additional libusb debugging please.
* We use the same level debug between MTP and USB.
*/
+ if (libusb1_initialized)
+ return LIBMTP_ERROR_NONE;
+
if (libusb_init(NULL) < 0) {
LIBMTP_ERROR("Libusb1 init failed\n");
return LIBMTP_ERROR_USB_LAYER;
}
+ libusb1_initialized = 1;
+
if ((LIBMTP_debug & LIBMTP_DEBUG_USB) != 0)
libusb_set_debug(NULL,9);
return LIBMTP_ERROR_NONE;