In the Linux kernel, the following vulnerability has been resolved: media: ipu6: Do not free aux device pdata after init ipu6_bus_initialize_device() stores the isys/psys pdata pointer in struct ipu6_bus_device and initializes the auxiliary device. After that point, error unwinding must drop the auxiliary device reference and let ipu6_bus_release() free both the bus device and adev->pdata. The isys and psys init paths already call put_device() when MMU initialization fails, and ipu6_bus_add_device() calls auxiliary_device_uninit() on auxiliary_device_add() failure. Both paths therefore run the bus release callback. The extra kfree(pdata) in the callers can release the same object a second time. Remove the manual pdata frees after the auxiliary device has been initialized. This issue was found by a static analysis checker and confirmed by manual source review.
https://git.kernel.org/stable/c/faa1eb97f0e66bf122f44b62be6b323f86333e9f
https://git.kernel.org/stable/c/9be07216af4cfc4813e1a46ce26407d31ea845de
https://git.kernel.org/stable/c/7d102d1f0631807a491a140f67c9628dea85dfd2
https://git.kernel.org/stable/c/5323ed5a7bb2568191ec676b2035b0396105aa05