usbus_fmt: Add missing alt iface size increase

The configuration length verification was not taking additional alt
interface descriptors into account. This breaks situations where an alt
interface is used such as is the case with CDC ECM
This commit is contained in:
Koen Zandberg 2019-12-06 14:28:32 +01:00
parent 2b934dea5f
commit 1a6209a8fe
No known key found for this signature in database
GPG Key ID: 0E63411F8FCA8247

View File

@ -199,6 +199,7 @@ static size_t _fmt_descriptors_iface_alts(usbus_t *usbus,
alt = alt->next) {
usb_descriptor_interface_t usb_iface;
_fmt_descriptor_iface(iface, &usb_iface);
len += sizeof(usb_descriptor_interface_t);
usb_iface.alternate_setting = alts++;
usb_iface.num_endpoints = _num_endpoints_alt(alt);
usbus_control_slicer_put_bytes(usbus, (uint8_t *)&usb_iface,