Skip to contentSkip to conversation

misc/isl29020: signedness bug in als_sensing_range_store()

PATCH In review Dan Carpenter 2 participants 2 messages Oct 28, 2010 – Nov 9, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 misc/isl29020: signedness bug in als_sensing_range_store()

"ret_val" is supposed to be signed here or the error handling breaks. Also we should check the return value from i2c_smbus_read_byte_data().

drivers/misc/isl29020.c +3 -1
index 34fe835..ca47e62 100644
@@ -87,7 +87,7 @@ static ssize_t als_sensing_range_store(struct device *dev,
 		struct device_attribute *attr, const  char *buf, size_t count)
 {
 	struct i2c_client *client = to_i2c_client(dev);
-	unsigned int ret_val;
+	int ret_val;
 	unsigned long val;
 
 	if (strict_strtoul(buf, 10, &val))
@@ -106,6 +106,8 @@ static ssize_t als_sensing_range_store(struct device *dev,
 		val = 4;
 
 	ret_val = i2c_smbus_read_byte_data(client, 0x00);
+	if (ret_val < 0)
+		return ret_val;
 
 	ret_val &= 0xFC; /*reset the bit before setting them */
 	ret_val |= val - 1;
#1 lore raw
Quoted 1 line · On Thu, 28 Oct 2010 06:40:37 +0200 Dan Carpenter <[email protected]> wrote:

misc/isl29020: signedness bug in als_sensing_range_store()

Thanks - added to my tree