summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--libusb/libusb_version.h2
-rw-r--r--libusb/os/windows_usb.c10
3 files changed, 7 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index 65ecdd6..e32bfcc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
m4_define(LIBUSB_MAJOR, [1])
m4_define(LIBUSB_MINOR, [0])
m4_define(LIBUSB_MICRO, [8])
-m4_define(LIBUSB_NANO, [10311])
+m4_define(LIBUSB_NANO, [10312])
AC_INIT([libusb], LIBUSB_MAJOR.LIBUSB_MINOR.LIBUSB_MICRO, [libusb-devel@lists.sourceforge.net], [libusb], [http://www.libusb.org/])
diff --git a/libusb/libusb_version.h b/libusb/libusb_version.h
index f5db4b8..b3bee2b 100644
--- a/libusb/libusb_version.h
+++ b/libusb/libusb_version.h
@@ -24,6 +24,6 @@
#define LIBUSB_VERSION_MAJOR 1
#define LIBUSB_VERSION_MINOR 0
#define LIBUSB_VERSION_MICRO 8
-#define LIBUSB_VERSION_NANO 10311
+#define LIBUSB_VERSION_NANO 10312
#endif
diff --git a/libusb/os/windows_usb.c b/libusb/os/windows_usb.c
index 5281e31..8842ebf 100644
--- a/libusb/os/windows_usb.c
+++ b/libusb/os/windows_usb.c
@@ -462,7 +462,6 @@ void htab_destroy(void)
}
/* This is the search function. It uses double hashing with open addressing.
-
We use an trick to speed up the lookup. The table is created with one
more element available. This enables us to use the index zero special.
This index will never be used because we store the first hash index in
@@ -470,10 +469,6 @@ void htab_destroy(void)
The used field can be used as a first fast comparison for equality of
the stored and the parameter value. This helps to prevent unnecessary
expensive calls of strcmp. */
-
-/* NB: the only way we would ever need a mutex here is if 2 colliding
- hashes were to be stored concurrently from 2 different threads. */
-
unsigned long htab_hash(char* str)
{
unsigned long hval, hval2;
@@ -546,6 +541,11 @@ unsigned long htab_hash(char* str)
safe_free(htab_table[idx].str);
htab_table[idx].used = hval;
htab_table[idx].str = malloc(safe_strlen(str)+1);
+ if (htab_table[idx].str == NULL) {
+ usbi_err(NULL, "could not duplicate string for hash table");
+ usbi_mutex_unlock(&htab_write_mutex);
+ return 0;
+ }
memcpy(htab_table[idx].str, str, safe_strlen(str)+1);
++htab_filled;
usbi_mutex_unlock(&htab_write_mutex);