lkml.org 
[lkml]   [2015]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/7] time: make sure tz_minuteswest is set to a valid value when setting time
    Date
    From: Sasha Levin <sasha.levin@oracle.com>

    Invalid values may overflow later, leading to undefined behaviour when
    multiplied by 60 to get the amount of seconds.

    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    ---
    kernel/time/time.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/kernel/time/time.c b/kernel/time/time.c
    index c42c2c3..972e3bb 100644
    --- a/kernel/time/time.c
    +++ b/kernel/time/time.c
    @@ -173,6 +173,10 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
    return error;

    if (tz) {
    + /* Verify we're witin the +-15 hrs range */
    + if (tz->tz_minuteswest > 15*60 || tz->tz_minuteswest < -15*60)
    + return -EINVAL;
    +
    sys_tz = *tz;
    update_vsyscall_tz();
    if (firsttime) {
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-05-20 19:41    [W:3.377 / U:0.608 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site