diff -rp -u4 libusb-1.0.19-orig/libusb/descriptor.c libusb-1.0.19/libusb/descriptor.c --- libusb-1.0.19-orig/libusb/descriptor.c 2015-05-12 00:15:19 +0200 +++ libusb-1.0.19/libusb/descriptor.c 2015-05-12 00:17:09 +0200 @@ -1181,9 +1181,9 @@ int API_EXPORTED libusb_get_string_descr if (tbuf[1] != LIBUSB_DT_STRING) return LIBUSB_ERROR_IO; if (tbuf[0] > r) - return LIBUSB_ERROR_IO; + tbuf[0] = r; for (di = 0, si = 2; si < tbuf[0]; si += 2) { if (di >= (length - 1)) break;