Description
In the Linux kernel, the following vulnerability has been resolved: spi: bcm-qspi: return error if neither hif_mspi nor mspi is available If neither a "hif_mspi" nor "mspi" resource is present, the driver will just early exit in probe but still return success. Apart from not doing anything meaningful, this would then also lead to a null pointer access on removal, as platform_get_drvdata() would return NULL, which it would then try to dereference when trying to unregister the spi master. Fix this by unconditionally calling devm_ioremap_resource(), as it can handle a NULL res and will then return a viable ERR_PTR() if we get one. The "return 0;" was previously a "goto qspi_resource_err;" where then ret was returned, but since ret was still initialized to 0 at this place this was a valid conversion in 63c5395bb7a9 ("spi: bcm-qspi: Fix use-after-free on unbind"). The issue was not introduced by this commit, only made more obvious.
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
fa236a7ef24048bafaeed13f68df35a819794758 to < a91c34357afcfaa5307e254f22a8452550a07b34affectedfa236a7ef24048bafaeed13f68df35a819794758 to < d20db3c58a7f9361e370a7850ceb60dbdf62eea3affectedfa236a7ef24048bafaeed13f68df35a819794758 to < 398e6a015877d44327f754aeb48ff3354945c78caffectedfa236a7ef24048bafaeed13f68df35a819794758 to < 32b9c8f7892c19f7f5c9fed5fb410b9fd5990bb6affectedfa236a7ef24048bafaeed13f68df35a819794758 to < 217b6ea8cf7b819477bca597a6ae2d43d38ba283affectedfa236a7ef24048bafaeed13f68df35a819794758 to < d3dcdb43c872a3b967345144151a2c9bb9124c9baffectedfa236a7ef24048bafaeed13f68df35a819794758 to < 22ae32d80ef590d12a2364e4621f90f7c58445c7affectedfa236a7ef24048bafaeed13f68df35a819794758 to < 7c1f23ad34fcdace50275a6aa1e1969b41c6233faffected
Linux Linux
Default version status: affected
4.9affected0 to < 4.9unaffected4.14.322 to ≤ 4.14.*unaffected4.19.291 to ≤ 4.19.*unaffected5.4.251 to ≤ 5.4.*unaffected5.10.188 to ≤ 5.10.*unaffected5.15.121 to ≤ 5.15.*unaffected6.1.39 to ≤ 6.1.*unaffected6.4.4 to ≤ 6.4.*unaffected6.5 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a91c34357afcfaa5307e254f22a8452550a07b34 ↗
- https://git.kernel.org/stable/c/d20db3c58a7f9361e370a7850ceb60dbdf62eea3 ↗
- https://git.kernel.org/stable/c/398e6a015877d44327f754aeb48ff3354945c78c ↗
- https://git.kernel.org/stable/c/32b9c8f7892c19f7f5c9fed5fb410b9fd5990bb6 ↗
- https://git.kernel.org/stable/c/217b6ea8cf7b819477bca597a6ae2d43d38ba283 ↗
- https://git.kernel.org/stable/c/d3dcdb43c872a3b967345144151a2c9bb9124c9b ↗
- https://git.kernel.org/stable/c/22ae32d80ef590d12a2364e4621f90f7c58445c7 ↗
- https://git.kernel.org/stable/c/7c1f23ad34fcdace50275a6aa1e1969b41c6233f ↗