]> git.baikalelectronics.ru Git - kernel.git/commit
time: Verify time values in adjtimex ADJ_SETOFFSET to avoid overflow
authorJohn Stultz <john.stultz@linaro.org>
Fri, 4 Dec 2015 03:09:31 +0000 (22:09 -0500)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 11 Dec 2015 06:41:06 +0000 (22:41 -0800)
commit7b858d2caaa98d251045f4e73d8c10be5afdf142
treedcefd17bfae395e3f40e4ddf7e9478e3f1bbe94c
parent9fd6ad98f5a4ca82bc66dac35bc86e0ba4fd6c63
time: Verify time values in adjtimex ADJ_SETOFFSET to avoid overflow

For adjtimex()'s ADJ_SETOFFSET, make sure the tv_usec value is
sane. We might multiply them later which can cause an overflow
and undefined behavior.

This patch introduces new helper functions to simplify the
checking code and adds comments to clarify

Orginally this patch was by Sasha Levin, but I've basically
rewritten it, so he should get credit for finding the issue
and I should get the blame for any mistakes made since.

Also, credit to Richard Cochran for the phrasing used in the
comment for what is considered valid here.

Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
include/linux/time.h
kernel/time/ntp.c
kernel/time/timekeeping.c