From ebcd7067c9b86b8df8a3f9cf07ba76edd9e7440c Mon Sep 17 00:00:00 2001 From: GuavTek Date: Fri, 18 Oct 2024 18:05:58 +0200 Subject: Recover host enumeration from zero length descriptors --- src/tusb.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/tusb.c') diff --git a/src/tusb.c b/src/tusb.c index e6f8055b7..799ffdce9 100644 --- a/src/tusb.c +++ b/src/tusb.c @@ -255,6 +255,10 @@ uint16_t tu_desc_get_interface_total_len(tusb_desc_interface_t const* desc_itf, ((tusb_desc_interface_t const*) p_desc)->bAlternateSetting == 0) { break; } + if (tu_desc_len(p_desc) == 0) { + // Escape infinite loop + break; + } len += tu_desc_len(p_desc); p_desc = tu_desc_next(p_desc); -- cgit v1.3.1