From: Sudip Mukherjee Date: Wed, 16 Sep 2015 14:02:59 +0000 (+0530) Subject: hwmon: (max31790) Fix dereference of ERR_PTR X-Git-Tag: v4.4-rc1~174^2~12 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=791432cfd95bea3515f8cdfaf72ec263e5d3da80;p=linux.git hwmon: (max31790) Fix dereference of ERR_PTR max31790_update_device() return the error code in ERR_PTR. We were checking if it has returned error or not but before checking we have dereferenced it. Signed-off-by: Sudip Mukherjee Signed-off-by: Guenter Roeck --- diff --git a/drivers/hwmon/max31790.c b/drivers/hwmon/max31790.c index f1296680833a..69c0ac80a946 100644 --- a/drivers/hwmon/max31790.c +++ b/drivers/hwmon/max31790.c @@ -174,12 +174,12 @@ static ssize_t get_fan(struct device *dev, { struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); struct max31790_data *data = max31790_update_device(dev); - int sr = get_tach_period(data->fan_dynamics[attr->index]); - int rpm; + int sr, rpm; if (IS_ERR(data)) return PTR_ERR(data); + sr = get_tach_period(data->fan_dynamics[attr->index]); rpm = RPM_FROM_REG(data->tach[attr->index], sr); return sprintf(buf, "%d\n", rpm); @@ -190,12 +190,12 @@ static ssize_t get_fan_target(struct device *dev, { struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); struct max31790_data *data = max31790_update_device(dev); - int sr = get_tach_period(data->fan_dynamics[attr->index]); - int rpm; + int sr, rpm; if (IS_ERR(data)) return PTR_ERR(data); + sr = get_tach_period(data->fan_dynamics[attr->index]); rpm = RPM_FROM_REG(data->target_count[attr->index], sr); return sprintf(buf, "%d\n", rpm);