summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Hjelm <hjelmn@google.com>2021-06-10 21:02:05 -0600
committerNathan Hjelm <hjelmn@google.com>2021-06-10 21:02:05 -0600
commit66d058150d9844a8556c37de6b5603c9e18a0330 (patch)
tree2bb00399c75a459135b67e3c212ccba5975885ff
parenta0e773812b8aa07ad57fc092a7a4f406366f5272 (diff)
downloadlibusb-66d058150d9844a8556c37de6b5603c9e18a0330.tar.gz
core: only increment devices_released when a device is destroyed
Fix a typo in the last commit to ensure the loop does exit when there is a dangling reference. Signed-off-by: Nathan Hjelm <hjelmn@google.com>
-rw-r--r--libusb/hotplug.c5
-rw-r--r--libusb/version_nano.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/libusb/hotplug.c b/libusb/hotplug.c
index deb138d..b6f896a 100644
--- a/libusb/hotplug.c
+++ b/libusb/hotplug.c
@@ -198,10 +198,11 @@ void usbi_hotplug_exit(struct libusb_context *ctx)
/* remove the device from the usb_devs list only if there are no
* references held, otherwise leave it on the list so that a
* warning message will be shown */
- if (usbi_atomic_load(&dev->refcnt) == 1)
+ if (usbi_atomic_load(&dev->refcnt) == 1) {
+ ++devices_released;
list_del(&dev->list);
+ }
libusb_unref_device(dev);
- ++devices_released;
}
} while (devices_released > 0);
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 21591b9..3924959 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11624
+#define LIBUSB_NANO 11625