<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cherryusb.git, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/cherryusb.git/atom/?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/cherryusb.git/atom/?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/'/>
<updated>2026-07-17T01:43:01Z</updated>
<entry>
<title>fix(usbh): bounds-check cur_ep before writing ep[] in parse_config_descriptor (#426)</title>
<updated>2026-07-17T01:43:01Z</updated>
<author>
<name>yi chen</name>
<email>87560781+94xhn@users.noreply.github.com</email>
</author>
<published>2026-07-17T01:43:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=5bfaf7e3fc542db6624fc51cceccbb1d92d8706c'/>
<id>urn:sha1:5bfaf7e3fc542db6624fc51cceccbb1d92d8706c</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>update(gamepad): update xinput report and desc</title>
<updated>2026-07-15T09:52:13Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-07-15T09:52:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=bcf74e9cdef573d4026cb5987076a263d8a8fc51'/>
<id>urn:sha1:bcf74e9cdef573d4026cb5987076a263d8a8fc51</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>fix(security): check desc len overflow</title>
<updated>2026-07-14T02:54:43Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-07-14T02:54:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=bce3346209445d8e8f9d60860c3e7ff6936d12b3'/>
<id>urn:sha1:bce3346209445d8e8f9d60860c3e7ff6936d12b3</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(chore): add clang-tidy</title>
<updated>2026-07-12T10:38:31Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-07-12T10:38:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=5e9d0e6dd393d9aff3ed7f8dc46824139448d0bb'/>
<id>urn:sha1:5e9d0e6dd393d9aff3ed7f8dc46824139448d0bb</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(security): check null pointer and overflow</title>
<updated>2026-07-12T10:37:33Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-07-12T10:37:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=22b07a18fde0befcdb59d58de5ad62c6ab4ba88e'/>
<id>urn:sha1:22b07a18fde0befcdb59d58de5ad62c6ab4ba88e</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(osal): remove log</title>
<updated>2026-07-12T10:35:27Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-07-12T10:35:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=0e2b503932b0e68a748098992ebf7f26d5a249d2'/>
<id>urn:sha1:0e2b503932b0e68a748098992ebf7f26d5a249d2</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(tools): update usb speed test</title>
<updated>2026-07-02T05:23:15Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-07-02T05:23:15Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=8f04252f0fd77926ad369346ce3e3442552d5f1f'/>
<id>urn:sha1:8f04252f0fd77926ad369346ce3e3442552d5f1f</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>feat(platform): add zmk support</title>
<updated>2026-06-30T13:25:35Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-06-30T13:25:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=b3195b95e0289ca04d079ab2c686dc122d7690f7'/>
<id>urn:sha1:b3195b95e0289ca04d079ab2c686dc122d7690f7</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(tool): update test_cdc_speed.py with args</title>
<updated>2026-06-30T13:25:00Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-06-30T13:25:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=cf8af5f3618e75fc13da53f61d2ef6faa77f489b'/>
<id>urn:sha1:cf8af5f3618e75fc13da53f61d2ef6faa77f489b</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>fix(ci): fix ci build</title>
<updated>2026-06-30T13:24:41Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-06-30T13:24:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=e85ef5896028c57ac11bbbe4fda90af57429e1be'/>
<id>urn:sha1:e85ef5896028c57ac11bbbe4fda90af57429e1be</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
</feed>
