aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Valentin <[email protected]>2016-11-07 21:08:58 -0800
committerZhang Rui <[email protected]>2016-11-23 10:06:12 +0800
commit09544da9e8255ef0f3aafd1e7da067dd2b521b40 (patch)
tree5bb3689c75c1a73a6a2d4ae9f1210fca594aea7d
parentba78da443bd5cae5079d2b1e8174d3a3cb040adb (diff)
thermal: core: treat correctly the return value of *scanf calls
This patch checks the return value of all calls to *scanf. The check is to simply match the number of expect inputs. The current code does not do any recovery in case the number of treated inputs are different than the expected. Therefore, keeping the same behavior. Cc: Zhang Rui <[email protected]> Cc: [email protected] Cc: [email protected] Signed-off-by: Eduardo Valentin <[email protected]> Signed-off-by: Zhang Rui <[email protected]>
-rw-r--r--drivers/thermal/thermal_core.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index f5b519a9f567..e2c4fc4904d6 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -874,7 +874,7 @@ trip_point_type_show(struct device *dev, struct device_attribute *attr,
if (!tz->ops->get_trip_type)
return -EPERM;
- if (!sscanf(attr->attr.name, "trip_point_%d_type", &trip))
+ if (sscanf(attr->attr.name, "trip_point_%d_type", &trip) != 1)
return -EINVAL;
result = tz->ops->get_trip_type(tz, trip, &type);
@@ -906,7 +906,7 @@ trip_point_temp_store(struct device *dev, struct device_attribute *attr,
if (!tz->ops->set_trip_temp)
return -EPERM;
- if (!sscanf(attr->attr.name, "trip_point_%d_temp", &trip))
+ if (sscanf(attr->attr.name, "trip_point_%d_temp", &trip) != 1)
return -EINVAL;
if (kstrtoint(buf, 10, &temperature))
@@ -932,7 +932,7 @@ trip_point_temp_show(struct device *dev, struct device_attribute *attr,
if (!tz->ops->get_trip_temp)
return -EPERM;
- if (!sscanf(attr->attr.name, "trip_point_%d_temp", &trip))
+ if (sscanf(attr->attr.name, "trip_point_%d_temp", &trip) != 1)
return -EINVAL;
ret = tz->ops->get_trip_temp(tz, trip, &temperature);
@@ -954,7 +954,7 @@ trip_point_hyst_store(struct device *dev, struct device_attribute *attr,
if (!tz->ops->set_trip_hyst)
return -EPERM;
- if (!sscanf(attr->attr.name, "trip_point_%d_hyst", &trip))
+ if (sscanf(attr->attr.name, "trip_point_%d_hyst", &trip) != 1)
return -EINVAL;
if (kstrtoint(buf, 10, &temperature))
@@ -984,7 +984,7 @@ trip_point_hyst_show(struct device *dev, struct device_attribute *attr,
if (!tz->ops->get_trip_hyst)
return -EPERM;
- if (!sscanf(attr->attr.name, "trip_point_%d_hyst", &trip))
+ if (sscanf(attr->attr.name, "trip_point_%d_hyst", &trip) != 1)
return -EINVAL;
ret = tz->ops->get_trip_hyst(tz, trip, &temperature);
@@ -999,7 +999,7 @@ passive_store(struct device *dev, struct device_attribute *attr,
struct thermal_zone_device *tz = to_thermal_zone(dev);
int state;
- if (!sscanf(buf, "%d\n", &state))
+ if (sscanf(buf, "%d\n", &state) != 1)
return -EINVAL;
/* sanity check: values below 1000 millicelcius don't make sense
@@ -1457,7 +1457,7 @@ thermal_cooling_device_cur_state_store(struct device *dev,
unsigned long state;
int result;
- if (!sscanf(buf, "%ld\n", &state))
+ if (sscanf(buf, "%ld\n", &state) != 1)
return -EINVAL;
if ((long)state < 0)