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:52 +0000 |
| commit | 3254ef0007502a505f125bbf453a82efecfbe327 (patch) | |
| tree | 0ed442c2ecd29d26132678826c338077f35d4d12 | |
| parent | 4316500c27c609d4d9c416f07ff37608d1a5d67b (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 2a6f0989f6aa..dec12946dda3 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)) { |
