Use time_t for intermediate values to avoid overflow in clock_ts_to_ct
authorcem <cem@FreeBSD.org>
Tue, 24 Jan 2017 18:05:29 +0000 (18:05 +0000)
committercem <cem@FreeBSD.org>
Tue, 24 Jan 2017 18:05:29 +0000 (18:05 +0000)
commit8cb19b99f491170750e05c45e1986a3ccff8b30f
tree8fcf99b45a360e1521e75d446d98b49dc3d6a9cd
parentdab9980fd3c6d0cd71e095c5a459c167e4037a19
Use time_t for intermediate values to avoid overflow in clock_ts_to_ct

Add additionally safety and overflow checks to clock_ts_to_ct and the
BCD routines while we're here.

Perform a safety check in sys_clock_settime() first to avoid easy local
root panic, without having to propagate an error value back through
dozens of APIs currently lacking error returns.

PR: 211960, 214300
Submitted by: Justin McOmie <justin.mcomie at gmail.com>, kib@
Reported by: Tim Newsham <tim.newsham at nccgroup.trust>
Reviewed by: kib@
Sponsored by: Dell EMC Isilon, FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D9279
sys/kern/kern_time.c
sys/kern/subr_clock.c
sys/libkern/bcd.c
sys/sys/libkern.h