aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/nct6775.c
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2013-09-11 10:35:47 -0700
committerGuenter Roeck <linux@roeck-us.net>2013-10-13 16:16:25 -0700
commit45a5b3a183b43e07b7d1eaf1ef7c00fc87511b1b (patch)
treecd18bd11f2a364e49a7b736c3c19523faf4def11 /drivers/hwmon/nct6775.c
parenthwmon: (nct6775) Use return value from find_temp_source (diff)
downloadlinux-dev-45a5b3a183b43e07b7d1eaf1ef7c00fc87511b1b.tar.xz
linux-dev-45a5b3a183b43e07b7d1eaf1ef7c00fc87511b1b.zip
hwmon: (nct6775) Check array index when accessing temp_offset
smatch complains about a potential out-of-bounds access to the temp_offset array. That doesn't happen in practice, but it doesn't hurt to add an explicit check either. This prevents potential problems in the future (for example if the number of 'fixed' temperature sensors is increased to add support for another chip). Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/nct6775.c')
-rw-r--r--drivers/hwmon/nct6775.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
index de57e0d60d23..b82fad487777 100644
--- a/drivers/hwmon/nct6775.c
+++ b/drivers/hwmon/nct6775.c
@@ -1457,7 +1457,8 @@ static struct nct6775_data *nct6775_update_device(struct device *dev)
= nct6775_read_temp(data,
data->reg_temp[j][i]);
}
- if (!(data->have_temp_fixed & (1 << i)))
+ if (i >= NUM_TEMP_FIXED ||
+ !(data->have_temp_fixed & (1 << i)))
continue;
data->temp_offset[i]
= nct6775_read_value(data, data->REG_TEMP_OFFSET[i]);