Skip to content

Commit

Permalink
parsedate.c: fix the return code for an overflow edge condition
Browse files Browse the repository at this point in the history
  • Loading branch information
dfandrich committed Aug 5, 2014
1 parent 0e452a0 commit 5b37db4
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions lib/parsedate.c
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 5b37db4

Please sign in to comment.