diff --git a/lib/asn1/timegm.c b/lib/asn1/timegm.c index c6b19e283..ee7d846ed 100644 --- a/lib/asn1/timegm.c +++ b/lib/asn1/timegm.c @@ -53,6 +53,10 @@ _der_timegm (struct tm *tm) time_t res = 0; unsigned i; + /* XXX this is wrong, needs to handle out of months, days, hours, min, sec */ + if (tm->tm_mon < 0 || tm->tm_mon > 11) + return -1; + for (i = 70; i < tm->tm_year; ++i) res += is_leap(i) ? 366 : 365;