mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 13:06:59 +02:00
thermal: core: Fix use-after-free in thermal_cooling_device_destroy_sysfs
commit3c58776827upstream. This patch fixes use-after-free that was detected by KASAN. The bug is triggered on a CPUFreq driver module unload by freeing 'cdev' on device unregister and then using the freed structure during of the cdev's sysfs data destruction. The solution is to unregister the sysfs at first, then destroy sysfs data and finally release the cooling device. Cc: <stable@vger.kernel.org> # v4.17+ Fixes:8ea229511e("thermal: Add cooling device's statistics in sysfs") Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e2496105bc
commit
2561c45b52
|
|
@ -1102,8 +1102,9 @@ void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
|
|||
mutex_unlock(&thermal_list_lock);
|
||||
|
||||
ida_simple_remove(&thermal_cdev_ida, cdev->id);
|
||||
device_unregister(&cdev->device);
|
||||
device_del(&cdev->device);
|
||||
thermal_cooling_device_destroy_sysfs(cdev);
|
||||
put_device(&cdev->device);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(thermal_cooling_device_unregister);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user