summaryrefslogtreecommitdiff
path: root/src/tusb.c
diff options
context:
space:
mode:
authorGuavTek <[email protected]>2024-11-27 22:19:42 +0100
committerGuavTek <[email protected]>2024-11-27 22:19:42 +0100
commit4212db1b83e472e669173b94f692e574c9f23720 (patch)
tree9fafc38348ad626e21c88c76481b3bed4ec9d528 /src/tusb.c
parentebcd7067c9b86b8df8a3f9cf07ba76edd9e7440c (diff)
Move desc_len sanity checks to start of loops
Diffstat (limited to 'src/tusb.c')
-rw-r--r--src/tusb.c8
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);