libusb_submit_transfer: Don't reference the device on submission failure
authorHans de Goede <hdegoede@redhat.com>
Fri, 30 May 2014 10:25:18 +0000 (12:25 +0200)
committerHans de Goede <hdegoede@redhat.com>
Fri, 30 May 2014 10:37:37 +0000 (12:37 +0200)
If submission fails libusb_ref_device will never get balanced by an unref
on completion, since there will be no completion.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
libusb/io.c
libusb/version_nano.h

index 5c51d73..b9ca767 100644 (file)
@@ -1456,10 +1456,10 @@ int API_EXPORTED libusb_submit_transfer(struct libusb_transfer *transfer)
        if (r != LIBUSB_SUCCESS) {
                list_del(&itransfer->list);
                arm_timerfd_for_next_timeout(ctx);
+       } else {
+               /* keep a reference to this device */
+               libusb_ref_device(transfer->dev_handle->dev);
        }
-
-       /* keep a reference to this device */
-       libusb_ref_device(transfer->dev_handle->dev);
 out:
        updated_fds = (itransfer->flags & USBI_TRANSFER_UPDATED_FDS);
        usbi_mutex_unlock(&itransfer->lock);
index 96ccb69..0d37865 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 10899
+#define LIBUSB_NANO 10900