In the Linux kernel, the following vulnerability has been resolved: iio: proximity: pulsedlight: fix iio_device left registered on PM setup failure pm_runtime_set_active() failing in probe() jumps to error_unreg_buffer, which only calls iio_triggered_buffer_cleanup() -- it does not undo the iio_device_register() that already succeeded a few lines above. probe() then returns the error, the devm-managed indio_dev is freed, but the iio core still has it registered: the sysfs/chardev nodes stay live and point at freed memory. Add an error_unreg_dev label that unregisters the iio device before falling through to the existing buffer cleanup, mirroring the teardown order already used in lidar_remove().
https://git.kernel.org/stable/c/e462b47b9637b8c0285f4a38b5af9a322847d164
https://git.kernel.org/stable/c/4daa9ca557b4b98ae1ad38a6d1deaa3e31eb8edf
https://git.kernel.org/stable/c/20ebd7f4e35c0a737f011bc83aeb0cdd37507648
https://git.kernel.org/stable/c/06fa13c53442257b94ea1519555ceddaaea57e0d