summaryrefslogtreecommitdiff
path: root/drivers/staging/android/alarm-dev.c
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-06-03 09:02:31 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-03 20:38:55 (GMT)
commite919b86c3b018c0e0c5e522354e743dcc0824ee1 (patch)
tree213c6525f5beb9afd7c94533514eac16ab3b0203 /drivers/staging/android/alarm-dev.c
parent76554b87c85c0ac5ba56797dda670bad6677f9f1 (diff)
downloadlinux-e919b86c3b018c0e0c5e522354e743dcc0824ee1.tar.xz
staging: alarm-dev: information leak in alarm_ioctl()
Smatch complains that if we pass an invalid clock type then "ts" is never set. We need to check for errors earlier, otherwise we end up passing uninitialized stack data to userspace. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/android/alarm-dev.c')
-rw-r--r--drivers/staging/android/alarm-dev.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/staging/android/alarm-dev.c b/drivers/staging/android/alarm-dev.c
index ceb1c64..c8600d9 100644
--- a/drivers/staging/android/alarm-dev.c
+++ b/drivers/staging/android/alarm-dev.c
@@ -264,6 +264,8 @@ static long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
}
rv = alarm_do_ioctl(file, cmd, &ts);
+ if (rv)
+ return rv;
switch (ANDROID_ALARM_BASE_CMD(cmd)) {
case ANDROID_ALARM_GET_TIME(0):
@@ -272,7 +274,7 @@ static long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
break;
}
- return rv;
+ return 0;
}
#ifdef CONFIG_COMPAT
static long alarm_compat_ioctl(struct file *file, unsigned int cmd,