| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-07-17 | fix(usbh): bounds-check cur_ep before writing ep[] in ↵HEADmaster | yi chen | |
| parse_config_descriptor (#426) * fix(usbh): check cur_ep against CONFIG_USBHOST_MAX_ENDPOINTS before writing ep[] parse_config_descriptor() checks cur_ep_num (the interface descriptor's self-declared bNumEndpoints) against CONFIG_USBHOST_MAX_ENDPOINTS when the INTERFACE descriptor is parsed, but cur_ep (the actual write index, incremented once per ENDPOINT sub-descriptor encountered in the byte stream) is never bounds-checked in the USB_DESCRIPTOR_TYPE_ENDPOINT case before the memcpy. A non-conformant or malicious device can declare a small bNumEndpoints while still emitting more ENDPOINT descriptors than declared in the raw config descriptor byte stream, causing cur_ep to exceed CONFIG_USBHOST_MAX_ENDPOINTS and the memcpy to write past the ep[] array, past altsetting[], and potentially past the whole usbh_configuration struct. Add the same bounds check pattern already used for cur_iface and cur_alt_setting two cases above, applied to cur_ep before the memcpy. * Allow interfaces to use configured capacity Endpoint counts are quantities, so a declaration equal to the endpoint array capacity is valid. The per-index guard still rejects descriptors that contain more endpoint records than the storage can hold. Constraint: Preserve the new cur_ep index guard Confidence: high Scope-risk: narrow Tested: Real parser matrix for declared/actual 3/3, 4/4, 5/5, and 3/5; MinGW and WSL GCC13 ASan+UBSan Not-tested: Physical USB device enumeration | |||
| 2026-07-14 | fix(security): check desc len overflow | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2026-07-12 | update(security): check null pointer and overflow | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2026-04-21 | fix(security): remove hport mutex safely | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2026-04-17 | fix(class/hub): remove bus mutex, replace with mq to exit thread | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2026-04-03 | fix(core): adjust init&deinit event callback position | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2026-03-30 | fix(core/usbh_core): fix desc length parse | sakumisu | |
| 2025-12-17 | style: change \t to space | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-12-03 | fix(core): fix warnings | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-11-27 | feat(core/usbh_core): support custom config index | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-11-24 | update(core): change assert with USB_ASSERT_MSG | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-11-20 | feat(core/usbh_core): support interfacenum match flag | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-11-13 | update(core/usbh_core): print interface num when load driver | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-11-11 | refactor(core/usbh_core): refactor lsusb | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-11-03 | update(core/usbh_core): add retry for control transfer, some devices are flakey | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-08-30 | feat: host add event callback mechanism similar to device | Egahp | |
| * fix: fix warning for speed_table * fix(port/dwc2/usb_hc_dwc2): add roothub.speed init * feat(usbh_core): add event_callback * fix(usbh_hub): fix event device reset port * fix(usbh_hub): remove event init when init failed * feat(usbh_core): add default dummy_event_callback * fix(usbh_hub): emit reset event only on successful reset * fix(usbh_core): emit interface start only on successful connect class driver * feat(usbh_core): change event_callback to typedef * feat(port): update port usbh init params * doc: update usbh_initialize desc * fix(usbh_core): check result from ret == 0 change to ret >= 0 --------- Signed-off-by: egahp <[email protected]> | |||
| 2025-08-27 | refactor(core/usbh_core): refactor devaddr allocation, use auto increment | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-08-01 | update(core/usbh_core): check string support and then get string desc | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-07-27 | update(core/usbh_core): do not assert when parse desc fail, just return error | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-07-25 | update: add output_len param for usbh_get_string_desc | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-07-20 | fix(core/usbh_core): change 2ms to 10ms because some platform's tick is ↵ | sakumisu | |
| 100hz then 2ms = 0ms, refs: #342 Signed-off-by: sakumisu <[email protected]> | |||
| 2025-05-06 | update: add USB_ASSERT_MSG for common case | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-04-30 | fix unused warnings | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-03-28 | fix: fix wformat warnings | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-03-28 | update: add usb align up for every buffer when use dcache clean&invalid api | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-02-09 | fix(core/usbh_core): check hport is valid in usbh_control_transfer | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-02-07 | fix(core/usbh_core): return valid hport which is connected | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2025-01-25 | feat(core/usbh_core): add usbh_printf_setup api for debug | sakumisu | |
| Signed-off-by: sakumisu <[email protected]> | |||
| 2024-12-20 | 修复VID/PID匹配逻辑 | yangpeng | |
| 2024-12-09 | fix warning | sakumisu | |
| 2024-10-31 | feat(core/usbh_core): add usbh_find_hubport api | sakumisu | |
| 2024-10-30 | fix: rename class to class_code, for c++ compatibility (#269) | electretmike | |
| Co-authored-by: Michiel van Leeuwen <[email protected]> | |||
| 2024-09-19 | chore: static code analysis | sakumisu | |
| 2024-09-16 | fix(core/usbh_core): Fix raw_config_desc heap out of bounds | CCHhui | |
| 2024-09-07 | update(usbh_core): add terminate char for raw_config_desc | sakumisu | |
| 2024-08-24 | fix(core/usbh_core.c): fix error name | sakumisu | |
| 2024-08-09 | Add PUSB2 and XHCI driver and RTOS glue (#236) | zhugengyu | |
| 2024-07-23 | refactor(osal): use osal malloc and free, remove usb_malloc & usb_free macro | sakumisu | |
| 2024-07-07 | update(hub): update hub macros and hub params for usb3.0 | sakumisu | |
| 2024-06-22 | update(core/usbh_core): do not use slist, we use recursion | sakumisu | |
| 2024-06-17 | fix(core/usbh_core): fix missing free devaddr caused by 935325 | sakumisu | |
| 2024-06-07 | remove old xhci patch | sakumisu | |
| 2024-05-15 | update(core/usbh_core): remove ununsed urb memset | sakumisu | |
| 2024-05-03 | adjust code order | sakumisu | |
| 2024-05-03 | support id table for multi vid pid | sakumisu | |
| 2024-05-03 | move usbh_hubport_release api to core | sakumisu | |
| 2024-04-25 | check class_driver is null | sakumisu | |
| 2024-04-25 | change INFO to DBG | sakumisu | |
| 2024-04-07 | add config index to select multi configs | sakumisu | |
| 2024-04-03 | add check for wTotalLength | sakumisu | |
