]> Git Repo - linux.git/commit
time: Improve sanity checking of timekeeping inputs
authorJohn Stultz <[email protected]>
Wed, 8 Aug 2012 19:36:20 +0000 (15:36 -0400)
committerThomas Gleixner <[email protected]>
Wed, 15 Aug 2012 13:54:01 +0000 (15:54 +0200)
commit4e8b14526ca7fb046a81c94002c1c43b6fdf0e9b
treed0681e8e99fe2fbae1bfa574a8a68320ae5c7c1f
parent3bf671af14d591ede9251acb0085e8017f3705e7
time: Improve sanity checking of timekeeping inputs

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 <[email protected]>
Reported-by: Sasha Levin <[email protected]>
Signed-off-by: John Stultz <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Prarit Bhargava <[email protected]>
Cc: Zhouping Liu <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
include/linux/ktime.h
include/linux/time.h
kernel/time/timekeeping.c
This page took 0.059271 seconds and 4 git commands to generate.