diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-09-06 16:45:10 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-09-06 16:45:10 +0200 |
commit | 4ffa16f8ef395dbbc48ae0fdd933d296446a9d91 (patch) | |
tree | 8e69579924502b12dc2f00a95cfefb5f70041f95 | |
parent | d758af27bb4a75d242a230cea39f952d16d07ee3 (diff) | |
download | libusb-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.c | 5 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
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 |