]> Cypherpunks.ru repositories - gostls13.git/commitdiff
net/http: fix ineffective break in etag scanning
authorDaniel Martí <mvdan@mvdan.cc>
Thu, 6 Apr 2017 11:24:58 +0000 (12:24 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Thu, 6 Apr 2017 18:44:29 +0000 (18:44 +0000)
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í <mvdan@mvdan.cc>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/fs.go
src/net/http/fs_test.go

index c331cb5ac4ae647af3ab5877c8170e6975557be7..90a3729cbd5942e05ab60891366b8b1e990010e9 100644 (file)
@@ -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 "", ""
index b682e779a415ce0ef8f594ba7eb669c2325a72ca..1bb24d3060ac4210927c057a66c4fc160e05390a 100644 (file)
@@ -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)