Просмотр исходного кода

[fix] fix normalization issue of mktime and timegm

milo 2 дней назад
Родитель
Сommit
3ca5cd53f5
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      components/libc/compilers/common/ctime.c

+ 2 - 1
components/libc/compilers/common/ctime.c

@@ -391,7 +391,6 @@ time_t timegm(struct tm * const t)
         return (time_t)-1;
     }
 
-    years = (time_t)t->tm_year - 70;
     if (t->tm_sec > 60)         /* seconds after the minute - [0, 60] including leap second */
     {
         t->tm_min += t->tm_sec / 60;
@@ -433,6 +432,8 @@ time_t timegm(struct tm * const t)
         return (time_t) -1;
     }
 
+    years = (time_t)t->tm_year - 70;
+
     /* Days since 1970 is 365 * number of years + number of leap years since 1970 */
     day = years * 365 + (years + 1) / 4;