parsedate.c: fix the return code for an overflow edge condition
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user