summaryrefslogtreecommitdiff
path: root/include/net/tipc/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2026-03-25 15:53:19 +0100
committerMark Brown <broonie@kernel.org>2026-03-26 10:45:28 +0000
commit8d2e0cb3224c89275c5471c92850e7f74df80c20 (patch)
tree1d174e0ff532926b770b887b7837425156ab8a52 /include/net/tipc/git@git.tavy.me:linux.git
parentcc34d77dd48708d810c12bfd6f5bf03304f6c824 (diff)
spi: fix use-after-free on managed registration failure
The SPI API is asymmetric and the controller is freed as part of deregistration (unless it has been allocated using devm_spi_alloc_host/target()). A recent change converting the managed registration function to use devm_add_action_or_reset() inadvertently introduced a (mostly theoretical) regression where a non-devres managed controller could be freed as part of failed registration. This in turn would lead to use-after-free in controller driver error paths. Fix this by taking another reference before calling devm_add_action_or_reset() and not releasing it on errors for non-devres allocated controllers. An alternative would be a partial revert of the offending commit, but it is better to handle this explicitly until the API has been fixed (e.g. see 5e844cc37a5c ("spi: Introduce device-managed SPI controller allocation")). Fixes: b6376dbed8e1 ("spi: Simplify devm_spi_*_controller()") Reported-by: Felix Gu <ustc.gu@gmail.com> Link: https://lore.kernel.org/all/20260324145548.139952-1-ustc.gu@gmail.com/ Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260325145319.1132072-1-johan@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/net/tipc/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions