summaryrefslogtreecommitdiff
path: root/drivers/staging/android
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-04-17 12:01:35 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-30 20:51:36 +0900
commit8bfe15f3de0af92fd822b7475878bddc93fa490d (patch)
tree84f492cb22f6fde989989c8739a748dd387d57d0 /drivers/staging/android
parent16b665543864904714f028b1d349f5d905f39afb (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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/android')
-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 62e79180421b..f373422308e0 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;