descriptor: Provide more detailed warning if suspicious bLength
authorTormod Volden <debian.tormod@gmail.com>
Mon, 1 Nov 2021 22:40:44 +0000 (23:40 +0100)
committerTormod Volden <debian.tormod@gmail.com>
Mon, 1 Nov 2021 22:40:44 +0000 (23:40 +0100)
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
libusb/descriptor.c
libusb/version_nano.h

index 10e05709c0c971309d4603e77b83ed7490bdc759..253ef1c319ef48f3a7fdbfe7820ff01e3105d376 100644 (file)
@@ -1109,7 +1109,7 @@ int API_EXPORTED libusb_get_string_descriptor_ascii(libusb_device_handle *dev_ha
        else if (str.desc.bDescriptorType != LIBUSB_DT_STRING)
                return LIBUSB_ERROR_IO;
        else if (str.desc.bLength & 1)
-               usbi_warn(HANDLE_CTX(dev_handle), "suspicious bLength %u for string descriptor", str.desc.bLength);
+               usbi_warn(HANDLE_CTX(dev_handle), "suspicious bLength %u for language ID string descriptor", str.desc.bLength);
 
        langid = libusb_le16_to_cpu(str.desc.wData[0]);
        r = libusb_get_string_descriptor(dev_handle, desc_index, langid, str.buf, sizeof(str.buf));
@@ -1120,7 +1120,7 @@ int API_EXPORTED libusb_get_string_descriptor_ascii(libusb_device_handle *dev_ha
        else if (str.desc.bDescriptorType != LIBUSB_DT_STRING)
                return LIBUSB_ERROR_IO;
        else if ((str.desc.bLength & 1) || str.desc.bLength != r)
-               usbi_warn(HANDLE_CTX(dev_handle), "suspicious bLength %u for string descriptor", str.desc.bLength);
+               usbi_warn(HANDLE_CTX(dev_handle), "suspicious bLength %u for string descriptor (read %d)", str.desc.bLength, r);
 
        di = 0;
        for (si = 2; si < str.desc.bLength; si += 2) {
index bb7f8c046747bb857710cc3a09a93d99c2f34d11..d14e2277aef1759f6deccdf35786a1cc49236784 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 11668
+#define LIBUSB_NANO 11669