summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToby Gray <toby.gray@realvnc.com>2012-11-26 13:25:05 +0000
committerPete Batard <pete@akeo.ie>2012-11-26 22:25:47 +0000
commitce75e9af3f9242ec328b0dc2336b69ff24287a3c (patch)
tree2bedbd6b4283e877f61e773ccfca1b2a621dffcc
parent21cf6e4748c20644c259d6f4271d2ca67d2e42e8 (diff)
downloadlibusb-ce75e9af3f9242ec328b0dc2336b69ff24287a3c.tar.gz
Core: Fix incorrect reference counting of default context when first created.
* See http://libusbx.1081486.n5.nabble.com/Libusbx-devel-stress-program-crashes-in-libusb-exit-NULL-tp474p477.html
-rw-r--r--libusb/core.c5
-rw-r--r--libusb/version_nano.h2
2 files changed, 2 insertions, 5 deletions
diff --git a/libusb/core.c b/libusb/core.c
index 07b0b04..729bce3 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -1655,6 +1655,7 @@ int API_EXPORTED libusb_init(libusb_context **context)
/* default context should be initialized before calling usbi_dbg */
if (!usbi_default_context) {
usbi_default_context = ctx;
+ default_context_refcnt++;
usbi_dbg("created default context");
}
@@ -1681,10 +1682,6 @@ int API_EXPORTED libusb_init(libusb_context **context)
if (context) {
*context = ctx;
- } else if (!usbi_default_context) {
- usbi_dbg("created default context");
- usbi_default_context = ctx;
- default_context_refcnt++;
}
usbi_mutex_static_unlock(&default_context_lock);
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index ef6b500..27680c6 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 10589
+#define LIBUSB_NANO 10590