diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-08-20 14:41:36 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-08-20 14:42:40 +0200 |
commit | 11335a2620a39a403b17a7809735712ec7a64a2c (patch) | |
tree | 0ba543d8ef6151ced707f3794091cd66f8606180 | |
parent | f0fb99aeb93f45d2846f8884a348e90438d13ef8 (diff) | |
download | libusb-11335a2620a39a403b17a7809735712ec7a64a2c.tar.gz |
libusb: Fix usb_devs_lock mutex use after free in libusb_init error path
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | libusb/core.c | 8 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libusb/core.c b/libusb/core.c index 4b9ce87..bdf4bb7 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -1876,10 +1876,6 @@ err_free_ctx: if (ctx == usbi_default_context) usbi_default_context = NULL; - usbi_mutex_destroy(&ctx->open_devs_lock); - usbi_mutex_destroy(&ctx->usb_devs_lock); - usbi_mutex_destroy(&ctx->hotplug_cbs_lock); - usbi_mutex_static_lock(&active_contexts_lock); list_del (&ctx->list); usbi_mutex_static_unlock(&active_contexts_lock); @@ -1891,6 +1887,10 @@ err_free_ctx: } usbi_mutex_unlock(&ctx->usb_devs_lock); + usbi_mutex_destroy(&ctx->open_devs_lock); + usbi_mutex_destroy(&ctx->usb_devs_lock); + usbi_mutex_destroy(&ctx->hotplug_cbs_lock); + free(ctx); err_unlock: usbi_mutex_static_unlock(&default_context_lock); diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 36b7ee4..25194c6 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 10810 +#define LIBUSB_NANO 10812 |