From: Jean Delvare Date: Thu, 25 Aug 2005 16:43:37 +0000 (+0200) Subject: [PATCH] hwmon: Off-by-one error in fscpos driver X-Git-Tag: v2.6.13~22 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fd1bb9baa394856b112e5edbfd3893d92dd1149;p=linux-2.6 [PATCH] hwmon: Off-by-one error in fscpos driver Coverity uncovered an off-by-one error in the fscpos driver, in function set_temp_reset(). Writing to the temp3_reset sysfs file will lead to an array overrun, in turn causing an I2C write to a random register of the FSC Poseidon chip. Additionally, writing to temp1_reset and temp2_reset will not work as expected. The fix is straightforward. Signed-off-by: Jean Delvare Signed-off-by: Linus Torvalds --- diff --git a/drivers/hwmon/fscpos.c b/drivers/hwmon/fscpos.c index 270015b626..301ae98bd0 100644 --- a/drivers/hwmon/fscpos.c +++ b/drivers/hwmon/fscpos.c @@ -167,7 +167,7 @@ static ssize_t set_temp_reset(struct i2c_client *client, struct fscpos_data "experience to the module author.\n"); /* Supported value: 2 (clears the status) */ - fscpos_write_value(client, FSCPOS_REG_TEMP_STATE[nr], 2); + fscpos_write_value(client, FSCPOS_REG_TEMP_STATE[nr - 1], 2); return count; }