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;
|
||||
}
|
||||
|
||||
if((mdaynum > 31) || (monnum > 11) ||
|
||||
(hournum > 23) || (minnum > 59) || (secnum > 60))
|
||||
return PARSEDATE_FAIL; /* clearly an illegal date */
|
||||
|
||||
tm.tm_sec = secnum;
|
||||
tm.tm_min = minnum;
|
||||
tm.tm_hour = hournum;
|
||||
|
@ -104,6 +104,11 @@ nothing
|
||||
75: Thu, 12-Aug-2007 20:61:99999999999 GMT => -1
|
||||
76: IAintNoDateFool => -1
|
||||
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>
|
||||
|
||||
# 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",
|
||||
"IAintNoDateFool",
|
||||
"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
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user