From: Daniel Martí Date: Thu, 6 Apr 2017 11:24:58 +0000 (+0100) Subject: net/http: fix ineffective break in etag scanning X-Git-Tag: go1.9beta1~813 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2c1888bf4804010213849521b96bd743d84dd34c;p=gostls13.git net/http: fix ineffective break in etag scanning 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 --- 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)