From 5dd51ed0f76a3790e35b502070d9acbb404fab30 Mon Sep 17 00:00:00 2001 From: radaiming Date: Wed, 28 Apr 2021 23:23:48 +0800 Subject: [PATCH] Fix possible panic --- parseany.go | 2 +- parseany_test.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/parseany.go b/parseany.go index a5c4053..b9668b2 100644 --- a/parseany.go +++ b/parseany.go @@ -240,7 +240,7 @@ func parseTime(datestr string, loc *time.Location, opts ...ParserOption) (p *par // this is because it means that a day is being interpreted as a month and overflowing the valid value for that // by retrying in this case, we can fix a common situation with no assumptions defer func() { - if p.ambiguousMD { + if p != nil && p.ambiguousMD { // if it errors out with the following error, swap before we // get out of this function to reduce scope it needs to be applied on _, err := p.parse() diff --git a/parseany_test.go b/parseany_test.go index ec36bc8..7fea1e6 100644 --- a/parseany_test.go +++ b/parseany_test.go @@ -520,6 +520,9 @@ func TestParseErrors(t *testing.T) { for _, th := range testParseErrors { v, err := ParseAny(th.in) assert.NotEqual(t, nil, err, "%v for %v", v, th.in) + + v, err = ParseAny(th.in, RetryAmbiguousDateWithSwap(true)) + assert.NotEqual(t, nil, err, "%v for %v", v, th.in) } }