Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 May 2019 21:26:44 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r347063 - head/sys/kern
Message-ID:  <201905032126.x43LQilu092655@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Fri May  3 21:26:44 2019
New Revision: 347063
URL: https://svnweb.freebsd.org/changeset/base/347063

Log:
  Disallow excessively small times of day in clock_settime(2).
  
  Reported by:	syzkaller
  Reviewed by:	cem, kib
  MFC after:	1 week
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D20151

Modified:
  head/sys/kern/kern_time.c

Modified: head/sys/kern/kern_time.c
==============================================================================
--- head/sys/kern/kern_time.c	Fri May  3 21:13:09 2019	(r347062)
+++ head/sys/kern/kern_time.c	Fri May  3 21:26:44 2019	(r347063)
@@ -412,7 +412,9 @@ kern_clock_settime(struct thread *td, clockid_t clock_
 	if (ats->tv_nsec < 0 || ats->tv_nsec >= 1000000000 ||
 	    ats->tv_sec < 0)
 		return (EINVAL);
-	if (!allow_insane_settime && ats->tv_sec > 8000ULL * 365 * 24 * 60 * 60)
+	if (!allow_insane_settime &&
+	    (ats->tv_sec > 8000ULL * 365 * 24 * 60 * 60 ||
+	    ats->tv_sec < utc_offset()))
 		return (EINVAL);
 	/* XXX Don't convert nsec->usec and back */
 	TIMESPEC_TO_TIMEVAL(&atv, ats);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905032126.x43LQilu092655>