From 0c54380e3d8920100fcfd41f0a1fe9872eb37d0e Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Tue, 26 May 2020 14:29:07 +0100 Subject: [PATCH] nmea: make sure date is valid GPS time without date was previously used to set system date: Tue Oct 10 11:48:21 2000 user.info kernel: [ 108.786639] ugps: system time differs from GPS time by more than 5 seconds. Using 2000-10-10T10:48:21 UTC as the new time Tue Oct 10 11:49:27 2000 user.info kernel: [ 174.794699] ugps: system time differs from GPS time by more than 5 seconds. Using 2020-05-26T10:49:27 UTC as the new time Fix this by ignoring incomplete dates and wait for complete time information before adjusting system date/time. Signed-off-by: Daniel Golle --- nmea.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nmea.c b/nmea.c index 61c57ab..8df7792 100644 --- a/nmea.c +++ b/nmea.c @@ -90,6 +90,10 @@ nmea_rmc_cb(void) &tm.tm_mday, &tm.tm_mon, &tm.tm_year) != 3) { ERROR("failed to parse date '%s'\n", nmea_params[9].str); } + else if (tm.tm_year == 0) { + DEBUG(4, "waiting for valid date\n"); + return; + } else { tm.tm_year += 100; /* year starts with 1900 */ tm.tm_mon -= 1; /* month starts with 0 */ -- 2.30.2