aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/parsedate.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/parsedate.c b/lib/parsedate.c
index 063d0c44a..de6cdb11b 100644
--- a/lib/parsedate.c
+++ b/lib/parsedate.c
@@ -369,10 +369,17 @@ static time_t Curl_parsedate(const char *date)
tm.tm_yday = 0;
tm.tm_isdst = 0;
+ /* mktime() returns a time_t. time_t is often 32 bits, even on many
+ architectures that feature 64 bit 'long'.
+
+ Some systems have 64 bit time_t and deal with years beyond 2038. However,
+ even some of the systems with 64 bit time_t returns -1 for dates beyond
+ 03:14:07 UTC, January 19, 2038. (Such as AIX 5100-06)
+ */
t = mktime(&tm);
/* time zone adjust */
- {
+ if(-1 != t) {
struct tm *gmt;
long delta;
time_t t2;