diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-06-26 17:13:44 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-06-26 17:13:44 +0200 |
commit | 17caf6d179c713c24d591acc0b475bf670cdfa7e (patch) | |
tree | 470a504a5c44dbfbf4854ceda8fdee24dca36877 | |
parent | 163e2083e290eb878f4e38b17daf5998a7a29c47 (diff) | |
download | libusb-17caf6d179c713c24d591acc0b475bf670cdfa7e.tar.gz |
openbsd: Fix memleak in obsd_get_device_list()
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | libusb/os/openbsd_usb.c | 6 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
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 |