mirror of https://github.com/moparisthebest/curl
parsedate: detect more invalid dates better
This commit is contained in:
parent
8da5da9b65
commit
57d51be60c
|
@ -485,6 +485,10 @@ static int parsedate(const char *date, time_t *output)
|
||||||
return PARSEDATE_SOONER;
|
return PARSEDATE_SOONER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((mdaynum > 31) || (monnum > 11) ||
|
||||||
|
(hournum > 23) || (minnum > 59) || (secnum > 60))
|
||||||
|
return PARSEDATE_FAIL; /* clearly an illegal date */
|
||||||
|
|
||||||
tm.tm_sec = secnum;
|
tm.tm_sec = secnum;
|
||||||
tm.tm_min = minnum;
|
tm.tm_min = minnum;
|
||||||
tm.tm_hour = hournum;
|
tm.tm_hour = hournum;
|
||||||
|
|
|
@ -104,6 +104,11 @@ nothing
|
||||||
75: Thu, 12-Aug-2007 20:61:99999999999 GMT => -1
|
75: Thu, 12-Aug-2007 20:61:99999999999 GMT => -1
|
||||||
76: IAintNoDateFool => -1
|
76: IAintNoDateFool => -1
|
||||||
77: Thu Apr 18 22:50 2007 GMT => 1176936600
|
77: Thu Apr 18 22:50 2007 GMT => 1176936600
|
||||||
|
78: 20110623 12:34:56 => 1308832496
|
||||||
|
79: 20110632 12:34:56 => -1
|
||||||
|
80: 20110623 56:34:56 => -1
|
||||||
|
81: 20111323 12:34:56 => -1
|
||||||
|
82: 20110623 12:34:79 => -1
|
||||||
</stdout>
|
</stdout>
|
||||||
|
|
||||||
# This test case previously testes an overflow case ("2094 Nov 6 =>
|
# This test case previously testes an overflow case ("2094 Nov 6 =>
|
||||||
|
|
|
@ -110,7 +110,11 @@ static const char *dates[]={
|
||||||
"Thu, 12-Aug-2007 20:61:99999999999 GMT",
|
"Thu, 12-Aug-2007 20:61:99999999999 GMT",
|
||||||
"IAintNoDateFool",
|
"IAintNoDateFool",
|
||||||
"Thu Apr 18 22:50 2007 GMT", /* without seconds */
|
"Thu Apr 18 22:50 2007 GMT", /* without seconds */
|
||||||
|
"20110623 12:34:56",
|
||||||
|
"20110632 12:34:56",
|
||||||
|
"20110623 56:34:56",
|
||||||
|
"20111323 12:34:56",
|
||||||
|
"20110623 12:34:79",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue