diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-07-17 13:08:33 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-07-28 17:34:40 +0000 |
| commit | e1c9b0b13a29f69d18dcc24359d7830a9493c5d5 (patch) | |
| tree | 2a256ffd60c6f85e8c2dbf048e6f5bda98ac6804 | |
| parent | 5a4222a1b225dc151d4262f1bb6e6ff5c1c0c79a (diff) | |
ktimer: Check for errors from realtimer_gettime()
clock_gettime(CLOCK_TAI) can fail, leaving *ovalue uninitialized.
Approved by: so
Security: FreeBSD-SA-26:51.ktimer
Security: CVE-2026-58084
Reported by: Hazley Samsudin of GovTech CSG
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58225
(cherry picked from commit 2f1ec7d159cbe56d40e7b6d7fc4188c9079e1783)
(cherry picked from commit a4b5ff57ef85031ba52feb70c754ba77f7c92cb0)
| -rw-r--r-- | sys/kern/kern_time.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c index 5b7485c25cd7..3e8117c40adc 100644 --- a/sys/kern/kern_time.c +++ b/sys/kern/kern_time.c @@ -1631,8 +1631,11 @@ realtimer_settime(struct itimer *it, int flags, struct itimerspec *value, timespecclear(&val.it_interval); } - if (ovalue != NULL) - realtimer_gettime(it, ovalue); + if (ovalue != NULL) { + error = realtimer_gettime(it, ovalue); + if (error != 0) + return (error); + } it->it_time = val; if (timespecisset(&val.it_value)) { |
