Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
wifi: brcmfmac: make release_scratchbuffers idempotent
In the Linux kernel, the following vulnerability has been resolved: wifi: brcmfmac: make release_scratchbuffers idempotent brcmf_pcie_release_scratchbuffers() frees the shared.scratch and shared.ringupd DMA buffers with dma_free_coherent() but does not clear the pointers afterwards, unlike the sibling release_ringbuffers() which NULLs commonrings/flowrings/idxbuf on release. Both the bus_reset .reset callback (brcmf_pcie_reset) and brcmf_pcie_remove() call release_scratchbuffers. When reset teardown has run before removal, remove's own teardown would call dma_free_coherent() a second time on the already-freed DMA allocation. NULL the pointers after free, matching release_ringbuffers(), so a later release observes that the allocation has already been released. This patch makes repeated sequential release safe; the reset-work lifetime is handled separately by the following patch. This issue was found by an in-house static analysis tool.
References
Affected products
- <538c51e9d124cf656f2dd0c0394a8545efc7102d
- <b7d1d8cb1bdca56aecebacd2896615da0acc126a
- =<6.6.*
- =<*
- <5.2
- =<6.18.*
- <5a045c2f0fbf029873d2295178fa0785ade35af0
- =<6.12.*
- =<7.1.*
- ==5.2
- <0ca80328df23f851c86866720d4977783c919ee6
- <044fca8f45ba9ab6ca526163155234cf88287ff5