summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-12-13 01:25:10 +0800
committerAndy Green <andy.green@linaro.org>2011-12-27 10:44:23 +0800
commit6a9f38fd18a3f5c7d2bc72b2a3e62a1fb2d59eb8 (patch)
treefaf1ab24a8a6d3cf4fe5900fa8dcb8c847cb8fdf
parenteda9519c8ee704958a7a6c2dda3f25f181a22066 (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;