Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

hwmon: (chipcap2) fix uninitialized variable in cc2_get_reg_val()

The reg_val variable in cc2_get_reg_val() might be used without a known
value if cc2_read_reg() fails. That leads to a useless data conversion
because the returned error means the read operation failed and the data is
not relevant.

That makes its initial value irrelevant as well, so skip the data
conversion instead. If no error happens, a value is assigned to reg_val
and the data conversion is required.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-hwmon/294e4634-89d4-415e-a723-b208d8770d7c@gmail.com/T/#t
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://lore.kernel.org/r/20240207-chipcap2_init_vars-v1-1-08cafe43e20e@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>

authored by

Javier Carrasco and committed by
Guenter Roeck
f16fb6d2 1b2ca93c

+3 -1
+3 -1
drivers/hwmon/chipcap2.c
··· 324 324 int ret; 325 325 326 326 ret = cc2_read_reg(data, reg, &reg_val); 327 - *val = cc2_rh_convert(reg_val); 327 + if (!ret) 328 + *val = cc2_rh_convert(reg_val); 329 + 328 330 cc2_disable(data); 329 331 330 332 return ret;