Skip to content

Commit

Permalink
time: don't match '---' month in time.Parse
Browse files Browse the repository at this point in the history
The existing implementation will panic when month in date string is '---'.

Fixed #21113

Change-Id: I8058ae7a4102e882f8b7e9c65d80936b563265e4
Reviewed-on: https://go-review.googlesource.com/51010
Run-TryBot: Ian Lance Taylor <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
  • Loading branch information
choleraehyq authored and ianlancetaylor committed Sep 8, 2017
1 parent a323656 commit 32e117d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/time/format.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,6 @@ var shortDayNames = []string{
}

var shortMonthNames = []string{
"---",
"Jan",
"Feb",
"Mar",
Expand All @@ -305,7 +304,6 @@ var shortMonthNames = []string{
}

var longMonthNames = []string{
"---",
"January",
"February",
"March",
Expand Down Expand Up @@ -841,8 +839,10 @@ func parse(layout, value string, defaultLocation, local *Location) (Time, error)
year, err = atoi(p)
case stdMonth:
month, value, err = lookup(shortMonthNames, value)
month++
case stdLongMonth:
month, value, err = lookup(longMonthNames, value)
month++
case stdNumMonth, stdZeroMonth:
month, value, err = getnum(value, std == stdZeroMonth)
if month <= 0 || 12 < month {
Expand Down
3 changes: 3 additions & 0 deletions src/time/format_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,9 @@ var parseErrorTests = []ParseErrorTest{
{RFC3339, "2006-01-02T15:04:05Z_abc", `parsing time "2006-01-02T15:04:05Z_abc": extra text: _abc`},
// invalid second followed by optional fractional seconds
{RFC3339, "2010-02-04T21:00:67.012345678-08:00", "second out of range"},
// issue 21113
{"_2 Jan 06 15:04 MST", "4 --- 00 00:00 GMT", "cannot parse"},
{"_2 January 06 15:04 MST", "4 --- 00 00:00 GMT", "cannot parse"},
}

func TestParseErrors(t *testing.T) {
Expand Down

0 comments on commit 32e117d

Please sign in to comment.