dns response handling: ignore presence of wrong-type RRs
[musl] / src / time / localtime_r.c
1 #include "time_impl.h"
2 #include <errno.h>
3 #include <limits.h>
4
5 struct tm *__localtime_r(const time_t *restrict t, struct tm *restrict tm)
6 {
7         /* Reject time_t values whose year would overflow int because
8          * __secs_to_zone cannot safely handle them. */
9         if (*t < INT_MIN * 31622400LL || *t > INT_MAX * 31622400LL) {
10                 errno = EOVERFLOW;
11                 return 0;
12         }
13         __secs_to_zone(*t, 0, &tm->tm_isdst, &tm->__tm_gmtoff, 0, &tm->__tm_zone);
14         if (__secs_to_tm((long long)*t + tm->__tm_gmtoff, tm) < 0) {
15                 errno = EOVERFLOW;
16                 return 0;
17         }
18         return tm;
19 }
20
21 weak_alias(__localtime_r, localtime_r);