blob: 3fa2971af386011b434b0ba17b93e682d92baa1f [file] [log] [blame]
From 8bfe15f3de0af92fd822b7475878bddc93fa490d Mon Sep 17 00:00:00 2001
From: Mike Lockwood <lockwood@android.com>
Date: Sat, 17 Apr 2010 12:01:35 -0400
Subject: Staging: android: timed_gpio: Properly discard invalid
timeout values.
Patch-mainline: HEAD
Git-commit: 8bfe15f3de0af92fd822b7475878bddc93fa490d
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>
diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
index 62e7918..f373422 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;