In the Linux kernel, the following vulnerability has been resolved:
spi: spi-sprd-adi: Fix double free in probe error path
The driver currently uses spiallochost() to allocate the controller but registers it using devmspiregister_controller().
If devmregisterrestarthandler() fails, the code jumps to the putctlr label and calls spicontrollerput(). However, since the controller was registered via a devm function, the device core will automatically call spicontrollerput() again when the probe fails. This results in a double-free of the spi_controller structure.
Fix this by switching to devmspiallochost() and removing the manual spicontroller_put() call.