aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-12-13 01:25:10 +0800
committerAndy Green <andy.green@linaro.org>2012-01-09 10:56:36 +0800
commite0cb1751226d6e7077d988cb10e510f890a30f84 (patch)
tree74a382e9e990f4b9b6f672de40b8a679dc97244e
parentf19df1de9e2e620e1795bc34fb0d70d78bcd13c7 (diff)
Staging: android: timed_gpio: Properly discard invalid timeout values.
The timed output device never previously checked the return value of sscanf, resulting in an uninitialized int being passed to enable() if input value was invalid. Signed-off-by: Mike Lockwood <lockwood@android.com>
-rw-r--r--drivers/staging/android/timed_output.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
index 62e79180421..f373422308e 100644
--- a/drivers/staging/android/timed_output.c
+++ b/drivers/staging/android/timed_output.c
@@ -41,7 +41,9 @@ static ssize_t enable_store(
struct timed_output_dev *tdev = dev_get_drvdata(dev);
int value;
- sscanf(buf, "%d", &value);
+ if (sscanf(buf, "%d", &value) != 1)
+ return -EINVAL;
+
tdev->enable(tdev, value);
return size;