From: Brad Fitzpatrick Date: Sat, 13 Feb 2016 06:20:17 +0000 (+0000) Subject: net/http: update bundled http2 to fix gzip crash on Read after NewReader error X-Git-Tag: go1.6~1^2~12 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=76cb265f2829be104c5fe395b81cd4721c9f0fa9;p=gostls13.git net/http: update bundled http2 to fix gzip crash on Read after NewReader error 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 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go index c4faccc7a8..d8be49c0de 100644 --- a/src/net/http/h2_bundle.go +++ b/src/net/http/h2_bundle.go @@ -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 } }