DEBUG(3, "date: %s UTC\n", tmp);
if (adjust_clock) {
- struct timeval tv = { timegm(&tm), 0 };
+ time_t sec = timegm(&tm);
+ struct timeval tv = { 0 };
struct timeval cur;
gettimeofday(&cur, NULL);
- if (abs(cur.tv_sec - tv.tv_sec) > MAX_TIME_OFFSET) {
+ if ((sec < 0) || (abs(cur.tv_sec - tv.tv_sec) > MAX_TIME_OFFSET)) {
+ tv.tv_sec = sec;
if (++nmea_bad_time > MAX_BAD_TIME) {
LOG("system time differs from GPS time by more than %d seconds. Using %s UTC as the new time\n", MAX_TIME_OFFSET, tmp);
/* only set datetime if specified by command line argument! */