On Wed, 21 Mar 2012 16:40:01 +0530, Amit Daniel Kachhap wrote:
Basically without this patch changing the mode of thermal zone is not possible as wrong string size is passed to strncmp.
Actually it is possible, $ echo -n disabled > mode works fine. But it fails without the -n, your patch would fix that.
Acked-by: Jean Delvare khali@linux-fr.org
Note that a quick grep suggests that drivers/misc/ad525x_dpot.c, security/selinux/hooks.c and arch/m68k/sun3/prom/console.c suffer from the same issue, if you want to fix them too.
Signed-off-by: Amit Daniel Kachhap amit.kachhap@linaro.org
drivers/thermal/thermal_sys.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c index 220ce7e..96da1af 100644 --- a/drivers/thermal/thermal_sys.c +++ b/drivers/thermal/thermal_sys.c @@ -152,9 +152,9 @@ mode_store(struct device *dev, struct device_attribute *attr, if (!tz->ops->set_mode) return -EPERM;
- if (!strncmp(buf, "enabled", sizeof("enabled")))
- if (!strncmp(buf, "enabled", sizeof("enabled") - 1)) result = tz->ops->set_mode(tz, THERMAL_DEVICE_ENABLED);
- else if (!strncmp(buf, "disabled", sizeof("disabled")))
- else if (!strncmp(buf, "disabled", sizeof("disabled") - 1)) result = tz->ops->set_mode(tz, THERMAL_DEVICE_DISABLED); else result = -EINVAL;