summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-09-06 16:45:10 +0200
committerHans de Goede <hdegoede@redhat.com>2013-09-06 16:45:10 +0200
commit4ffa16f8ef395dbbc48ae0fdd933d296446a9d91 (patch)
tree8e69579924502b12dc2f00a95cfefb5f70041f95
parentd758af27bb4a75d242a230cea39f952d16d07ee3 (diff)
downloadlibusb-4ffa16f8ef395dbbc48ae0fdd933d296446a9d91.tar.gz
openbsd: Fix a memleak
discovered_devs_append takes a reference to the past in dev, so we must release our own reference. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--libusb/os/openbsd_usb.c5
-rw-r--r--libusb/version_nano.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/libusb/os/openbsd_usb.c b/libusb/os/openbsd_usb.c
index 84c339e..e1be242 100644
--- a/libusb/os/openbsd_usb.c
+++ b/libusb/os/openbsd_usb.c
@@ -186,7 +186,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) {
close(fd);
@@ -226,6 +228,7 @@ obsd_get_device_list(struct libusb_context * ctx,
close(fd);
return (LIBUSB_ERROR_NO_MEM);
}
+ libusb_unref_device(dev);
*discdevs = ddd;
devices[addr] = 1;
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 1aa4bd5..d8a3c31 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 10832
+#define LIBUSB_NANO 10833