]> www.infradead.org Git - users/jedix/linux-maple.git/commit
time: Improve sanity checking of timekeeping inputs
authorJohn Stultz <john.stultz@linaro.org>
Wed, 12 Sep 2012 00:49:51 +0000 (20:49 -0400)
committerGuangyu Sun <guangyu.sun@oracle.com>
Mon, 8 Oct 2012 17:01:01 +0000 (10:01 -0700)
commita39b266d052993e27d1685848c973ea132876c37
tree0f677e5c02e2cb44450cb0c34ba9248038515ff8
parent990bb90f9d4157cfb885081775f2c89eace01122
time: Improve sanity checking of timekeeping inputs

commit 4e8b14526ca7fb046a81c94002c1c43b6fdf0e9b upstream

Unexpected behavior could occur if the time is set to a value large
enough to overflow a 64bit ktime_t (which is something larger then the
year 2262).

Also unexpected behavior could occur if large negative offsets are
injected via adjtimex.

So this patch improves the sanity check timekeeping inputs by
improving the timespec_valid() check, and then makes better use of
timespec_valid() to make sure we don't set the time to an invalid
negative value or one that overflows ktime_t.

Note: This does not protect from setting the time close to overflowing
ktime_t and then letting natural accumulation cause the overflow.

Reported-by: CAI Qian <caiqian@redhat.com>
Reported-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Zhouping Liu <zliu@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/1344454580-17031-1-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Guangyu Sun <guangyu.sun@oracle.com>
include/linux/ktime.h
include/linux/time.h
kernel/time/timekeeping.c