summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuan Mu <Ymu@winbond.com.tw>2005-11-24 00:44:21 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-24 08:04:26 +0100
commit2723ab91cb4019def10bdb01b0fecb85e6ac7884 (patch)
tree753a9a0096bb1e41d79e5ef58370d7cfa8152228
parent[PATCH] Add more SCM trees to MAINTAINERS (diff)
downloadlinux-2723ab91cb4019def10bdb01b0fecb85e6ac7884.tar.xz
linux-2723ab91cb4019def10bdb01b0fecb85e6ac7884.zip
[PATCH] hwmon: Fix missing boundary check when setting W83627THF in0 limits
Add SENSORS_LIMIT in store VCore limit functions. This fixes a potential u8 overflow on out-of-range user input. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/hwmon/w83627hf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/hwmon/w83627hf.c b/drivers/hwmon/w83627hf.c
index 4e9a04e1f08e..bbb3dcde146b 100644
--- a/drivers/hwmon/w83627hf.c
+++ b/drivers/hwmon/w83627hf.c
@@ -456,7 +456,9 @@ static ssize_t store_regs_in_min0(struct device *dev, struct device_attribute *a
(w83627thf == data->type || w83637hf == data->type))
/* use VRM9 calculation */
- data->in_min[0] = (u8)(((val * 100) - 70000 + 244) / 488);
+ data->in_min[0] =
+ SENSORS_LIMIT(((val * 100) - 70000 + 244) / 488, 0,
+ 255);
else
/* use VRM8 (standard) calculation */
data->in_min[0] = IN_TO_REG(val);
@@ -481,7 +483,9 @@ static ssize_t store_regs_in_max0(struct device *dev, struct device_attribute *a
(w83627thf == data->type || w83637hf == data->type))
/* use VRM9 calculation */
- data->in_max[0] = (u8)(((val * 100) - 70000 + 244) / 488);
+ data->in_max[0] =
+ SENSORS_LIMIT(((val * 100) - 70000 + 244) / 488, 0,
+ 255);
else
/* use VRM8 (standard) calculation */
data->in_max[0] = IN_TO_REG(val);