aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McBride <sean@rogue-research.com>2023-12-30 00:43:29 -0500
committerTormod Volden <debian.tormod@gmail.com>2024-01-19 19:43:24 +0100
commit7ab9c93d7da60bd5754291deb67586f63efe45eb (patch)
tree2f02257a6212e94fcf2151927ff11fc7ce23ae91
parenta8fba21b7fa38860d78b131ca72937792adb9d62 (diff)
downloadlibusb-7ab9c93d7da60bd5754291deb67586f63efe45eb.tar.gz
core: Add missing mutex acquisition when manipulating active_contexts_list
The `active_contexts_list` is supposed to be protected by the `active_contexts_lock` mutex. Upon code review, found one place where the mutex was not acquired. Closes #1413
-rw-r--r--libusb/core.c2
-rw-r--r--libusb/version_nano.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/libusb/core.c b/libusb/core.c
index 391acef..f67a4a0 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -2445,10 +2445,12 @@ int API_EXPORTED libusb_init_context(libusb_context **ctx, const struct libusb_i
}
/* check for first init */
+ usbi_mutex_static_lock(&active_contexts_lock);
if (!active_contexts_list.next) {
list_init(&active_contexts_list);
usbi_get_monotonic_time(&timestamp_origin);
}
+ usbi_mutex_static_unlock(&active_contexts_lock);
_ctx = calloc(1, PTR_ALIGN(sizeof(*_ctx)) + priv_size);
if (!_ctx) {
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 69ee24e..e1060c8 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11862
+#define LIBUSB_NANO 11863