Description
In the Linux kernel, the following vulnerability has been resolved: qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure adapter->dcb would get silently freed inside qlcnic_dcb_enable() in case qlcnic_dcb_attach() would return an error, which always happens under OOM conditions. This would lead to use-after-free because both of the existing callers invoke qlcnic_dcb_get_info() on the obtained pointer, which is potentially freed at that point. Propagate errors from qlcnic_dcb_enable(), and instead free the dcb pointer at callsite using qlcnic_dcb_free(). This also removes the now unused qlcnic_clear_dcb_ops() helper, which was a simple wrapper around kfree() also causing memory leaks for partially initialized dcb. Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.
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
3c44bba1d270cb1620b4fe76786d0968118cb86b to < 36999236f0b12d5de21a6f40e93b570727b9ceb2affected3c44bba1d270cb1620b4fe76786d0968118cb86b to < d12a7510293d3370b234b0b7c5eda33e58786768affected3c44bba1d270cb1620b4fe76786d0968118cb86b to < 8f97eeb02a553cdc78c83a0596448a370e1518c4affected3c44bba1d270cb1620b4fe76786d0968118cb86b to < 513787ff9a331b461115e8a145a983d650a84fcbaffected3c44bba1d270cb1620b4fe76786d0968118cb86b to < 95df720e64a6409d8152827a776c43f615e3321aaffected3c44bba1d270cb1620b4fe76786d0968118cb86b to < 8df1dc04ce0e4c03b51a756749c250a9cb17d707affected3c44bba1d270cb1620b4fe76786d0968118cb86b to < a2a694e6edbdb3efb34e1613a31fdcf6cf444a55affected3c44bba1d270cb1620b4fe76786d0968118cb86b to < 13a7c8964afcd8ca43c0b6001ebb0127baa95362affected
Linux Linux
Default version status: affected
3.14affected0 to < 3.14unaffected4.14.303 to ≤ 4.14.*unaffected4.19.270 to ≤ 4.19.*unaffected5.4.229 to ≤ 5.4.*unaffected5.10.163 to ≤ 5.10.*unaffected5.15.87 to ≤ 5.15.*unaffected6.0.19 to ≤ 6.0.*unaffected6.1.5 to ≤ 6.1.*unaffected6.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/36999236f0b12d5de21a6f40e93b570727b9ceb2 ↗
- https://git.kernel.org/stable/c/d12a7510293d3370b234b0b7c5eda33e58786768 ↗
- https://git.kernel.org/stable/c/8f97eeb02a553cdc78c83a0596448a370e1518c4 ↗
- https://git.kernel.org/stable/c/513787ff9a331b461115e8a145a983d650a84fcb ↗
- https://git.kernel.org/stable/c/95df720e64a6409d8152827a776c43f615e3321a ↗
- https://git.kernel.org/stable/c/8df1dc04ce0e4c03b51a756749c250a9cb17d707 ↗
- https://git.kernel.org/stable/c/a2a694e6edbdb3efb34e1613a31fdcf6cf444a55 ↗
- https://git.kernel.org/stable/c/13a7c8964afcd8ca43c0b6001ebb0127baa95362 ↗