All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] system/rtc: Fix a possible year-2038 integer overflow problem
@ 2026-05-18 16:02 Thomas Huth
  2026-05-18 16:10 ` Daniel P. Berrangé
  2026-05-18 16:15 ` Laurent Vivier
  0 siblings, 2 replies; 13+ messages in thread
From: Thomas Huth @ 2026-05-18 16:02 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial

From: Thomas Huth <thuth@redhat.com>

rtc_realtime_clock_offset is initialized with:

  rtc_realtime_clock_offset = qemu_clock_get_ms(QEMU_CLOCK_REALTIME) / 1000;

And QEMU_CLOCK_REALTIME might be based on gettimeofday() in certain
cases (see get_clock_realtime() in include/qemu/timer.h). So this
counter will exceed 32 bits in the year 2038, thus we should not
store this value in a normal integer variable. Change it to an int64_t
to fix the problem.
And while we're at it, also adjust the nearby rtc_host_datetime_offset
variable to be on the safe side in the related code.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 system/rtc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/system/rtc.c b/system/rtc.c
index f13dd392a76..83b28088054 100644
--- a/system/rtc.c
+++ b/system/rtc.c
@@ -41,8 +41,8 @@ static enum {
     RTC_BASE_DATETIME,
 } rtc_base_type = RTC_BASE_UTC;
 static time_t rtc_ref_start_datetime;
-static int rtc_realtime_clock_offset; /* used only with QEMU_CLOCK_REALTIME */
-static int rtc_host_datetime_offset = -1; /* valid & used only with
+static int64_t rtc_realtime_clock_offset; /* used only with QEMU_CLOCK_REALTIME */
+static int64_t rtc_host_datetime_offset = -1; /* valid & used only with
                                              RTC_BASE_DATETIME */
 QEMUClockType rtc_clock;
 /***********************************************************/
-- 
2.54.0



^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-05-19 20:20 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-18 16:02 [PATCH] system/rtc: Fix a possible year-2038 integer overflow problem Thomas Huth
2026-05-18 16:10 ` Daniel P. Berrangé
2026-05-18 16:18   ` Daniel P. Berrangé
2026-05-18 16:30     ` Thomas Huth
2026-05-19  8:24     ` Philippe Mathieu-Daudé
2026-05-19  9:18       ` Thomas Huth
2026-05-19  9:26         ` Thomas Huth
2026-05-19  9:56           ` Philippe Mathieu-Daudé
2026-05-19 10:21           ` Peter Maydell
2026-05-19 11:01             ` Thomas Huth
2026-05-19 12:15           ` Alex Bennée
2026-05-19 20:20       ` Richard Henderson
2026-05-18 16:15 ` Laurent Vivier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.