From: Miod Vallat Date: Thu, 5 Feb 2026 08:19:53 +0000 (+0100) Subject: There are only 24 hours in a day, not 60. X-Git-Tag: rec-5.5.0-alpha0~32^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f08edf4c5825970f38f3d6fd7a9f359494c00a04;p=thirdparty%2Fpdns.git There are only 24 hours in a day, not 60. Signed-off-by: Miod Vallat --- diff --git a/pdns/unix_utility.cc b/pdns/unix_utility.cc index c58bf40422..bca797ffd1 100644 --- a/pdns/unix_utility.cc +++ b/pdns/unix_utility.cc @@ -239,9 +239,10 @@ time_t Utility::timegm(struct tm *const t) time_t i; time_t years = t->tm_year - 70; + // We allow for some benign out-of-range values if (t->tm_sec>60) { t->tm_min += t->tm_sec/60; t->tm_sec%=60; } if (t->tm_min>60) { t->tm_hour += t->tm_min/60; t->tm_min%=60; } - if (t->tm_hour>60) { t->tm_mday += t->tm_hour/60; t->tm_hour%=60; } + if (t->tm_hour>24) { t->tm_mday += t->tm_hour/24; t->tm_hour%=24; } if (t->tm_mon>11) { t->tm_year += t->tm_mon/12; t->tm_mon%=12; } while (t->tm_mday>spm[1+t->tm_mon]) {