From 2c1888bf4804010213849521b96bd743d84dd34c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Thu, 6 Apr 2017 12:24:58 +0100 Subject: [PATCH] net/http: fix ineffective break in etag scanning MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In particular, this lead to the code accepting invalid ETags as long as they finished with a '"'. Also remove a duplicate test case. Change-Id: Id59db3ebc4e4969562f891faef29111e77ee0e65 Reviewed-on: https://go-review.googlesource.com/39690 Run-TryBot: Daniel Martí Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/net/http/fs.go | 2 +- src/net/http/fs_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/net/http/fs.go b/src/net/http/fs.go index c331cb5ac4..90a3729cbd 100644 --- a/src/net/http/fs.go +++ b/src/net/http/fs.go @@ -315,7 +315,7 @@ func scanETag(s string) (etag string, remain string) { case c == '"': return string(s[:i+1]), s[i+1:] default: - break + return "", "" } } return "", "" diff --git a/src/net/http/fs_test.go b/src/net/http/fs_test.go index b682e779a4..1bb24d3060 100644 --- a/src/net/http/fs_test.go +++ b/src/net/http/fs_test.go @@ -1264,10 +1264,10 @@ func Test_scanETag(t *testing.T) { {`"etag-2"`, `"etag-2"`, ""}, {`"etag-1", "etag-2"`, `"etag-1"`, `, "etag-2"`}, {"", "", ""}, - {"", "", ""}, {"W/", "", ""}, {`W/"truc`, "", ""}, {`w/"case-sensitive"`, "", ""}, + {`"spaced etag"`, "", ""}, } for _, test := range tests { etag, remain := ExportScanETag(test.in) -- 2.48.1