From 2ac2caf6fcc2e0a39427fa9cb72ab8c3af424e36 Mon Sep 17 00:00:00 2001 From: oleg0421 Date: Mon, 10 Feb 2025 22:08:35 -0800 Subject: [PATCH] [channel,rdpecam] uvc_h264 xu_descriptor pointer fix --- channels/rdpecam/client/v4l/uvc_h264.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/channels/rdpecam/client/v4l/uvc_h264.c b/channels/rdpecam/client/v4l/uvc_h264.c index 2b5b57f96..0cfcedc36 100644 --- a/channels/rdpecam/client/v4l/uvc_h264.c +++ b/channels/rdpecam/client/v4l/uvc_h264.c @@ -375,9 +375,10 @@ static uint8_t get_guid_unit_id_from_device(libusb_device* device, const uint8_t interface->bInterfaceSubClass != USB_VIDEO_CONTROL) continue; - const xu_descriptor* desc = (const xu_descriptor*)interface->extra; - while (((const uint8_t*)desc) < interface->extra + interface->extra_length) + const uint8_t* ptr = interface->extra; + while (ptr < interface->extra + interface->extra_length) { + const xu_descriptor* desc = (const xu_descriptor*)ptr; if (desc->bDescriptorType == USB_VIDEO_CONTROL_INTERFACE && desc->bDescriptorSubType == USB_VIDEO_CONTROL_XU_TYPE && memcmp(desc->guidExtensionCode, guid, 16) == 0) @@ -390,7 +391,7 @@ static uint8_t get_guid_unit_id_from_device(libusb_device* device, const uint8_t ddesc.idVendor, ddesc.idProduct, unit_id); return unit_id; } - desc++; + ptr += desc->bLength; } } }