]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: update bundled http2 to fix gzip crash on Read after NewReader error
authorBrad Fitzpatrick <bradfitz@golang.org>
Sat, 13 Feb 2016 06:20:17 +0000 (06:20 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sat, 13 Feb 2016 06:46:47 +0000 (06:46 +0000)
Updates x/net/http2 to git rev 62685c2 for https://golang.org/cl/19483

Change-Id: Id01331cdba03934a6e55e55ad9c2ae27461ba149
Reviewed-on: https://go-review.googlesource.com/19484
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/h2_bundle.go

index c4faccc7a8d2561c0e3e41fd74a9ea923bc36e43..d8be49c0de1c6fd5d40e8abc04c20b94e0ca1552 100644 (file)
@@ -6141,13 +6141,18 @@ func (rt http2erringRoundTripper) RoundTrip(*Request) (*Response, error) { retur
 // call gzip.NewReader on the first call to Read
 type http2gzipReader struct {
        body io.ReadCloser // underlying Response.Body
-       zr   io.Reader     // lazily-initialized gzip reader
+       zr   *gzip.Reader  // lazily-initialized gzip reader
+       zerr error         // sticky error
 }
 
 func (gz *http2gzipReader) Read(p []byte) (n int, err error) {
+       if gz.zerr != nil {
+               return 0, gz.zerr
+       }
        if gz.zr == nil {
                gz.zr, err = gzip.NewReader(gz.body)
                if err != nil {
+                       gz.zerr = err
                        return 0, err
                }
        }