aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-06-26 17:13:44 +0200
committerHans de Goede <hdegoede@redhat.com>2013-06-26 17:13:44 +0200
commit17caf6d179c713c24d591acc0b475bf670cdfa7e (patch)
tree470a504a5c44dbfbf4854ceda8fdee24dca36877
parent163e2083e290eb878f4e38b17daf5998a7a29c47 (diff)
downloadandroid_external_libusbx-17caf6d179c713c24d591acc0b475bf670cdfa7e.tar.gz
android_external_libusbx-17caf6d179c713c24d591acc0b475bf670cdfa7e.tar.bz2
android_external_libusbx-17caf6d179c713c24d591acc0b475bf670cdfa7e.zip
openbsd: Fix memleak in obsd_get_device_list()
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--libusb/os/openbsd_usb.c6
-rw-r--r--libusb/version_nano.h2
2 files changed, 6 insertions, 2 deletions
diff --git a/libusb/os/openbsd_usb.c b/libusb/os/openbsd_usb.c
index ccad768..f4fd454 100644
--- a/libusb/os/openbsd_usb.c
+++ b/libusb/os/openbsd_usb.c
@@ -161,7 +161,9 @@ obsd_get_device_list(struct libusb_context * ctx,
session_id = (di.udi_bus << 8 | di.udi_addr);
dev = usbi_get_device_by_session_id(ctx, session_id);
- if (dev == NULL) {
+ if (dev) {
+ dev = libusb_ref_device(dev);
+ } else {
dev = usbi_alloc_device(ctx, session_id);
if (dev == NULL)
return (LIBUSB_ERROR_NO_MEM);
@@ -192,6 +194,8 @@ obsd_get_device_list(struct libusb_context * ctx,
if (discovered_devs_append(*discdevs, dev) == NULL)
return (LIBUSB_ERROR_NO_MEM);
+
+ libusb_unref_device(dev);
}
return (LIBUSB_SUCCESS);
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 13ef98f..75b0ec7 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 10759
+#define LIBUSB_NANO 10760