Commit 4d58f97f authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

parsedate: allow time specified without seconds

The date format in RFC822 allows that the seconds part of HH:MM:SS is
left out, but this function didn't allow it. This change also includes a
modified test case that makes sure that this now works.

Reported by: Matt Ford
Bug: http://curl.haxx.se/bug/view.cgi?id=3076529
parent 33c3bb05
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -371,6 +371,12 @@ int Curl_parsedate(const char *date, time_t *output)
        /* time stamp! */
        date += 8;
      }
      else if((secnum == -1) &&
              (2 == sscanf(date, "%02d:%02d", &hournum, &minnum))) {
        /* time stamp without seconds */
        date += 5;
        secnum = 0;
      }
      else {
        val = (int)strtol(date, &end, 10);

+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ nothing
74: Thu, 999999999999-Aug-2007 20:49:07 GMT => -1
75: Thu, 12-Aug-2007 20:61:99999999999 GMT => -1
76: IAintNoDateFool => -1
77: Thu Apr 18 22:50 2007 GMT => 1176936600
</stdout>

# This test case previously testes an overflow case ("2094 Nov 6 =>
+2 −0
Original line number Diff line number Diff line
@@ -97,6 +97,8 @@ static const char *dates[]={
  "Thu, 999999999999-Aug-2007 20:49:07 GMT",
  "Thu, 12-Aug-2007 20:61:99999999999 GMT",
  "IAintNoDateFool",
  "Thu Apr 18 22:50 2007 GMT", /* without seconds */

  NULL
};