X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=kernel%2Ftime.c;h=31ec845d0e80f615ba01a1dfead04d4a6c0dc8fc;hb=43e7406efd7822d75c64310461d2cbca0ece19f0;hp=d21398e6da87f19d62e3b20fd1d7ded9ffa9cabf;hpb=cc43a17507644ad34d07a3e95d7376d55fd82b15;p=firefly-linux-kernel-4.4.55.git diff --git a/kernel/time.c b/kernel/time.c index d21398e6da87..31ec845d0e80 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -195,6 +195,10 @@ SYSCALL_DEFINE2(settimeofday, struct timeval __user *, tv, if (tv) { if (copy_from_user(&user_tv, tv, sizeof(*tv))) return -EFAULT; + + if (!timeval_valid(&user_tv)) + return -EINVAL; + new_ts.tv_sec = user_tv.tv_sec; new_ts.tv_nsec = user_tv.tv_usec * NSEC_PER_USEC; }