diff options
| author | GuavTek <[email protected]> | 2024-11-27 22:19:42 +0100 |
|---|---|---|
| committer | GuavTek <[email protected]> | 2024-11-27 22:19:42 +0100 |
| commit | 4212db1b83e472e669173b94f692e574c9f23720 (patch) | |
| tree | 9fafc38348ad626e21c88c76481b3bed4ec9d528 /src/tusb.c | |
| parent | ebcd7067c9b86b8df8a3f9cf07ba76edd9e7440c (diff) | |
Move desc_len sanity checks to start of loops
Diffstat (limited to 'src/tusb.c')
| -rw-r--r-- | src/tusb.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/tusb.c b/src/tusb.c index 799ffdce9..66c835e61 100644 --- a/src/tusb.c +++ b/src/tusb.c @@ -247,6 +247,10 @@ uint16_t tu_desc_get_interface_total_len(tusb_desc_interface_t const* desc_itf, p_desc = tu_desc_next(p_desc); while (len < max_len) { + if (tu_desc_len(p_desc) == 0) { + // Escape infinite loop + break; + } // return on IAD regardless of itf count if (tu_desc_type(p_desc) == TUSB_DESC_INTERFACE_ASSOCIATION) { return len; @@ -255,10 +259,6 @@ 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); |
