diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-31 18:16:55 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-31 18:16:55 (GMT) |
commit | 951069e311a2a931bf7c9d838db860f90bf14c45 (patch) | |
tree | 0aaeb29c496036983b4e894477f9d9f4881286e1 | |
parent | 3ee68c4af3fd7228c1be63254b9f884614f9ebb2 (diff) | |
download | linux-951069e311a2a931bf7c9d838db860f90bf14c45.tar.xz |
Don't try to "validate" a non-existing timeval.
settime() with a NULL timeval is silly but legal.
Noticed by Dave Jones <davej@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | kernel/time.c | 2 | ||||
-rw-r--r-- | security/seclvl.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/kernel/time.c b/kernel/time.c index 7477b1d..1f23e68 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -155,7 +155,7 @@ int do_sys_settimeofday(struct timespec *tv, struct timezone *tz) static int firsttime = 1; int error = 0; - if (!timespec_valid(tv)) + if (tv && !timespec_valid(tv)) return -EINVAL; error = security_settime(tv, tz); diff --git a/security/seclvl.c b/security/seclvl.c index 1caac01..8529ea6 100644 --- a/security/seclvl.c +++ b/security/seclvl.c @@ -368,8 +368,8 @@ static int seclvl_capable(struct task_struct *tsk, int cap) */ static int seclvl_settime(struct timespec *tv, struct timezone *tz) { - struct timespec now; - if (seclvl > 1) { + if (tv && seclvl > 1) { + struct timespec now; now = current_kernel_time(); if (tv->tv_sec < now.tv_sec || (tv->tv_sec == now.tv_sec && tv->tv_nsec < now.tv_nsec)) { |