Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb4725c2 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Prevent infinite loop on zero length USB descriptors" am: a40c30d1 am: ff3df3f1

Change-Id: Ie6c52366aa19fcf55e891f655f534939f128251d
parents 685a5c49 ff3df3f1
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -597,6 +597,11 @@ struct usb_descriptor_header *usb_descriptor_iter_next(struct usb_descriptor_ite
    if (iter->curr_desc >= iter->config_end)
    if (iter->curr_desc >= iter->config_end)
        return NULL;
        return NULL;
    next = (struct usb_descriptor_header*)iter->curr_desc;
    next = (struct usb_descriptor_header*)iter->curr_desc;
    // Corrupt descriptor with zero length, cannot continue iterating
    if (next->bLength == 0) {
       D("usb_descriptor_iter_next got zero length USB descriptor, ending iteration\n");
       return NULL;
    }
    iter->curr_desc += next->bLength;
    iter->curr_desc += next->bLength;
    return next;
    return next;
}
}