thermal/drivers/rcar: Fix error checking in probe()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: thermal/drivers/rcar: Fix error checking in probe() This code accidentally calls thermal_zone_device_enable() before checking whether thermal_zone_device_register_with_trips() failed. Move the call until later to avoid an error pointer dereference of "priv->zone". The driver works differently depending on if we are using OF thermal or not. We use thermal_add_hwmon_sysfs() if we are using OF thermal and call thermal_zone_device_enable() if not. We can share same error check for if either of these fail. Moving the thermal_zone_device_enable() call is a bit cleaner as well. The original code used a three step process to cleanup: 1. Call thermal_zone_device_unregister() to cleanup. 2. Set priv->zone to an error pointer to preserve the error code. 3. Set priv->zone to NULL to avoid a second call to thermal_zone_device_unregister() in the rcar_thermal_remove() function. Now we can just do a direct goto error_unregister and rcar_thermal_remove() handles the cleanup properly.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From bbcf90c0646ac797700269fa6645a6a46466c79f · fixed in a85bcd0c7ef66e3404b3c99e5589c5ea622a757e; From bbcf90c0646ac797700269fa6645a6a46466c79f · fixed in 810875c5996f731961fc5ee1bd24e711f2e8fe78; From bbcf90c0646ac797700269fa6645a6a46466c79f · fixed in 623349a18d4c6e6add7876553c0cb6947c8d92e6; From bbcf90c0646ac797700269fa6645a6a46466c79f · fixed in 35bf61798e7d4abf39667d98f298f793b3dd9bbe; From bbcf90c0646ac797700269fa6645a6a46466c79f · fixed in d67607e7749527850619a10d3ed033b02dcea516; From bbcf90c0646ac797700269fa6645a6a46466c79f · fixed in dd04ad1cdabcad51e34b74b4e91b9aeb7180d05d
- Linux Linux
5.9
- KernelLinux
From 5.9.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6