From 4fbd24a5dc07cfc39d525b1482b087d49188c41e Mon Sep 17 00:00:00 2001 From: Claude DevOps Engineer Date: Thu, 29 Jan 2026 04:02:06 -0300 Subject: [PATCH] Fix u32 underflow in Unix timestamp calculation Cast raw_secs and SNTP_TIME_OFFSET to i64 before subtraction to prevent u32 underflow panic when raw_secs < SNTP_TIME_OFFSET (e.g. dates before 1970 in NTP epoch). Closes #10 --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 69e79fe..60f2400 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -145,7 +145,7 @@ impl SntpRequest { pub fn get_unix_time_by_addr(&self, addr: A) -> SntpUnixTimeResult { let raw_time = self.get_raw_time_by_addr(addr)?; let raw_secs = raw_time.secs; - Ok((raw_secs - SNTP_TIME_OFFSET) as i64) + Ok((raw_secs as i64) - (SNTP_TIME_OFFSET as i64)) } /// Obtains the raw time from default NTP server address [`POOL_NTP_ADDR`](constant.POOL_NTP_ADDR.html).