From ca7e753bd149dae747d76fa7d52b20b920f3a814 Mon Sep 17 00:00:00 2001 From: Aaron Raddon Date: Sat, 7 Oct 2017 09:34:59 -0700 Subject: [PATCH] Dont allow unix-seconds to be negative --- parseany.go | 7 ++++++- parseany_test.go | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/parseany.go b/parseany.go index 073f320..81de181 100644 --- a/parseany.go +++ b/parseany.go @@ -574,7 +574,12 @@ iterRunes: } if t.IsZero() { if secs, err := strconv.ParseInt(datestr, 10, 64); err == nil { - t = time.Unix(secs, 0) + if secs < 0 { + // Now, for unix-seconds we aren't going to guess a lot + // nothing before unix-epoch + } else { + t = time.Unix(secs, 0) + } } } if !t.IsZero() { diff --git a/parseany_test.go b/parseany_test.go index 7a35dca..29bc70d 100644 --- a/parseany_test.go +++ b/parseany_test.go @@ -468,6 +468,9 @@ func TestParse(t *testing.T) { _, err = ParseAny("138421636711122233311111") // too many digits assert.NotEqual(t, nil, err) + + _, err = ParseAny("-1314") + assert.NotEqual(t, nil, err) } func testDidPanic(datestr string) (paniced bool) {