Description
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_eem: Fix memory leak in eem_unwrap The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks. Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers. kmemleak results: unreferenced object 0xffffff895a512300 (size 240): backtrace: slab_post_alloc_hook+0xbc/0x3a4 kmem_cache_alloc+0x1b4/0x358 skb_clone+0x90/0xd8 eem_unwrap+0x1cc/0x36c unreferenced object 0xffffff8a157f4000 (size 256): backtrace: slab_post_alloc_hook+0xbc/0x3a4 __kmem_cache_alloc_node+0x1b4/0x2dc kmalloc_trace+0x48/0x140 dwc3_gadget_ep_alloc_request+0x58/0x11c usb_ep_alloc_request+0x40/0xe4 eem_unwrap+0x204/0x36c unreferenced object 0xffffff8aadbaac00 (size 128): backtrace: slab_post_alloc_hook+0xbc/0x3a4 __kmem_cache_alloc_node+0x1b4/0x2dc __kmalloc+0x64/0x1a8 eem_unwrap+0x218/0x36c unreferenced object 0xffffff89ccef3500 (size 64): backtrace: slab_post_alloc_hook+0xbc/0x3a4 __kmem_cache_alloc_node+0x1b4/0x2dc kmalloc_trace+0x48/0x140 eem_unwrap+0x238/0x36c
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
3b545788505b2e2883aff13bdddeacaf88942a4f to < a9985a88b2fc29fbe1657fe8518908e261d6889caffected4249d6fbc10fd997abdf8a1ea49c0389a0edf706 to < 5a1628283cd9dccf1e44acfb74e77504f4dc7472affected4249d6fbc10fd997abdf8a1ea49c0389a0edf706 to < 0ac07e476944a5e4c2b8b087dd167dec248c1bdfaffected4249d6fbc10fd997abdf8a1ea49c0389a0edf706 to < 41434488ca714ab15cb2a4d0378418d1be8052d2affected4249d6fbc10fd997abdf8a1ea49c0389a0edf706 to < e72c963177c708a167a7e17ed6c76320815157cfaffected4249d6fbc10fd997abdf8a1ea49c0389a0edf706 to < 0dea2e0069a7e9aa034696f8065945b7be6dd6b7affected4249d6fbc10fd997abdf8a1ea49c0389a0edf706 to < e4f5ce990818d37930cd9fb0be29eee0553c59d9affectedd55a236f1bab102e353ea5abb7b7b6ff7e847294affected8e275d3d5915a8f7db3786e3f84534bb48245f4caffected3680a6ff9a9ccd3c664663da04bef2534397d591affectedd654be97e1b679616e3337b871a9ec8f31a88841affected8bdef7f21cb6e53c0ce3e1cbcb05975aa0dd0fe9affected77d7f071883cf2921a7547f82e41f15f7f860e35affecteda55093941e38113dd6f5f5d5d2705fec3018f332affected5.10.50 to < 5.10.247affected4.4.276 to < 4.5affected4.9.276 to < 4.10affected4.14.240 to < 4.15affected4.19.198 to < 4.20affected5.4.132 to < 5.5affected5.12.17 to < 5.13affected5.13.2 to < 5.14affected
Linux Linux
Default version status: affected
5.14affected0 to < 5.14unaffected5.10.247 to ≤ 5.10.*unaffected5.15.197 to ≤ 5.15.*unaffected6.1.159 to ≤ 6.1.*unaffected6.6.119 to ≤ 6.6.*unaffected6.12.61 to ≤ 6.12.*unaffected6.17.11 to ≤ 6.17.*unaffected6.18 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a9985a88b2fc29fbe1657fe8518908e261d6889c ↗
- https://git.kernel.org/stable/c/5a1628283cd9dccf1e44acfb74e77504f4dc7472 ↗
- https://git.kernel.org/stable/c/0ac07e476944a5e4c2b8b087dd167dec248c1bdf ↗
- https://git.kernel.org/stable/c/41434488ca714ab15cb2a4d0378418d1be8052d2 ↗
- https://git.kernel.org/stable/c/e72c963177c708a167a7e17ed6c76320815157cf ↗
- https://git.kernel.org/stable/c/0dea2e0069a7e9aa034696f8065945b7be6dd6b7 ↗
- https://git.kernel.org/stable/c/e4f5ce990818d37930cd9fb0be29eee0553c59d9 ↗