From 5b37db44a3ebe63c49bb94b68eb919047ad94fb0 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Tue, 5 Aug 2014 08:50:30 +0200 Subject: parsedate.c: fix the return code for an overflow edge condition --- lib/parsedate.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/parsedate.c b/lib/parsedate.c index d7942f554..ecb8dfb42 100644 --- a/lib/parsedate.c +++ b/lib/parsedate.c @@ -530,8 +530,10 @@ static int parsedate(const char *date, time_t *output) /* Add the time zone diff between local time zone and GMT. */ long delta = (long)(tzoff!=-1?tzoff:0); - if((delta>0) && (t > LONG_MAX - delta)) - return -1; /* time_t overflow */ + if((delta>0) && (t > LONG_MAX - delta)) { + *output = 0x7fffffff; + return PARSEDATE_LATER; /* time_t overflow */ + } t += delta; } @@ -561,9 +563,6 @@ time_t curl_getdate(const char *p, const time_t *now) * Curl_gmtime() is a gmtime() replacement for portability. Do not use the * gmtime_r() or gmtime() functions anywhere else but here. * - * To make sure no such function calls slip in, we define them to cause build - * errors, which is why we use the name within parentheses in this function. - * */ CURLcode Curl_gmtime(time_t intime, struct tm *store) -- cgit v1.2.1