]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.13] net/http: fix panic with If-None-Match value in http.ServeContent
authorMarcus Weiner <marcus.weiner@gmail.com>
Wed, 24 Jun 2020 15:24:56 +0000 (15:24 +0000)
committerDmitri Shuralyov <dmitshur@golang.org>
Mon, 13 Jul 2020 18:33:23 +0000 (18:33 +0000)
Updates #39817.
Fixes #39925.

Change-Id: I79f2ad7c836a8a46569f603aca583fdd526d22dc
GitHub-Last-Rev: 5b88aada219aaa2af0c7e1969ed6fa646117d9da
GitHub-Pull-Request: golang/go#39821
Reviewed-on: https://go-review.googlesource.com/c/go/+/239699
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
(cherry picked from commit ce81a8f5e4f6c33036aa0777fabc47eeeab468dc)
Reviewed-on: https://go-review.googlesource.com/c/go/+/242077
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Marcus Weiner <marcus.weiner@gmail.com>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
src/net/http/fs.go
src/net/http/fs_test.go

index 41d46dced2a96d803ed66b797bf44778ba613f3b..ac4ed23e71c86d4894e666174ac6abdaf1270fb6 100644 (file)
@@ -408,6 +408,7 @@ func checkIfNoneMatch(w ResponseWriter, r *Request) condResult {
                }
                if buf[0] == ',' {
                        buf = buf[1:]
+                       continue
                }
                if buf[0] == '*' {
                        return condFalse
index 762e88b05ff30cf81b395a9b0a2bbc4a7dbf6bc0..f3c240fe7ebe070bac4617cbdbaca1fc19bcc54d 100644 (file)
@@ -837,6 +837,15 @@ func TestServeContent(t *testing.T) {
                        wantStatus:      200,
                        wantContentType: "text/css; charset=utf-8",
                },
+               "if_none_match_malformed": {
+                       file:      "testdata/style.css",
+                       serveETag: `"foo"`,
+                       reqHeader: map[string]string{
+                               "If-None-Match": `,`,
+                       },
+                       wantStatus:      200,
+                       wantContentType: "text/css; charset=utf-8",
+               },
                "range_good": {
                        file:      "testdata/style.css",
                        serveETag: `"A"`,