Description
In the Linux kernel, the following vulnerability has been resolved: hwmon: (w83791d) Convert macros to functions to avoid TOCTOU The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors. Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions. Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data. Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.
Product status
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before 3dceb68f6ad33156032ef4da21a93d84059cca6d
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before bf5b03227f2e6d4360004886d268f9df8993ef8f
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before f2b579a0c37c0df19603d719894a942a295f634a
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before f94800fbc26ccf7c81eb791707b038a57aa39a18
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before a9fb6e8835a22f5796c1182ed612daed3fd273af
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before c8cf0c2bdcccc6634b6915ff793b844e12436680
9873964d6eb24bd0205394f9b791de9eddbcb855 (git) before 670d7ef945d3a84683594429aea6ab2cdfa5ceb4
2.6.18
Any version before 2.6.18
5.10.248 (semver)
5.15.198 (semver)
6.1.160 (semver)
6.6.120 (semver)
6.12.64 (semver)
6.18.3 (semver)
6.19 (original_commit_for_fix)
References
git.kernel.org/...c/3dceb68f6ad33156032ef4da21a93d84059cca6d
git.kernel.org/...c/bf5b03227f2e6d4360004886d268f9df8993ef8f
git.kernel.org/...c/f2b579a0c37c0df19603d719894a942a295f634a
git.kernel.org/...c/f94800fbc26ccf7c81eb791707b038a57aa39a18
git.kernel.org/...c/a9fb6e8835a22f5796c1182ed612daed3fd273af
git.kernel.org/...c/c8cf0c2bdcccc6634b6915ff793b844e12436680
git.kernel.org/...c/670d7ef945d3a84683594429aea6ab2cdfa5ceb4