Description
In the Linux kernel, the following vulnerability has been resolved: dpaa2-switch: fix the error path in dpaa2_switch_rx() In case of an error in dpaa2_switch_rx(), the dpaa2_switch_free_fd() function is called in order to free the FD. This is incorrect since the dpaa2_switch_free_fd() is intended to be used on Tx frame descriptors, meaning that it expects in the software annotation area of the FD data to find a valid skb pointer on which to call dev_kfree_skb(). Fix this by extracting the dma_unmap_page() from dpaa2_switch_build_linear_skb() directly into the dpaa2_switch_rx() function. This allows us to directly use free_pages() in case of an error before an SKB was created and kfree_skb() afterwards.
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
613c0a5810b79610db8535c3816b0c149675f8ee to < 791068c962469af0090e1a1ee63657fb9eef40dbaffected613c0a5810b79610db8535c3816b0c149675f8ee to < ee54f8d7e642c44cfcc2dcb390b4c50e145d81b8affected613c0a5810b79610db8535c3816b0c149675f8ee to < 259ad6093204b999d41e7e6d0ad90ef9a71a44abaffected613c0a5810b79610db8535c3816b0c149675f8ee to < f4ceb8e3d6d5becb4cda7a7098a8638e18c835a1affected613c0a5810b79610db8535c3816b0c149675f8ee to < fa232b4496cb59503ae5108c756cbe10e59b0bc3affected613c0a5810b79610db8535c3816b0c149675f8ee to < 74c1c9f5c0c30bbd0c2cf87b6e3507e7ea46c13daffected
Linux Linux
Default version status: affected
5.13affected0 to < 5.13unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/791068c962469af0090e1a1ee63657fb9eef40db ↗
- https://git.kernel.org/stable/c/ee54f8d7e642c44cfcc2dcb390b4c50e145d81b8 ↗
- https://git.kernel.org/stable/c/259ad6093204b999d41e7e6d0ad90ef9a71a44ab ↗
- https://git.kernel.org/stable/c/f4ceb8e3d6d5becb4cda7a7098a8638e18c835a1 ↗
- https://git.kernel.org/stable/c/fa232b4496cb59503ae5108c756cbe10e59b0bc3 ↗
- https://git.kernel.org/stable/c/74c1c9f5c0c30bbd0c2cf87b6e3507e7ea46c13d ↗