From f9cdc09497af299ef6a4d4d745aa0df4ebfdce52 Mon Sep 17 00:00:00 2001 From: Joe Tsai Date: Sun, 21 Aug 2022 02:21:49 -0700 Subject: time: fix Parse for empty seconds The error return value of the seconds field is overwritten and not checked in the presence of a fractional second. Perform an explicit check for errors. Fixes #54569 Change-Id: I1204c8bdcd5a5a09b773d9e44748141ed1e5cb20 Reviewed-on: https://go-review.googlesource.com/c/go/+/425036 Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: David Chase Run-TryBot: Joseph Tsai Auto-Submit: Joseph Tsai Reviewed-by: Rob Pike --- src/time/format.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/time/format.go') diff --git a/src/time/format.go b/src/time/format.go index ed2a0a8fc6..a278cd9e6b 100644 --- a/src/time/format.go +++ b/src/time/format.go @@ -1135,6 +1135,9 @@ func parse(layout, value string, defaultLocation, local *Location) (Time, error) } case stdSecond, stdZeroSecond: sec, value, err = getnum(value, std == stdZeroSecond) + if err != nil { + break + } if sec < 0 || 60 <= sec { rangeErrString = "second" break -- cgit v1.3-5-g9baa