]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: update bundled http2
authorMichael Fraenkel <michael.fraenkel@gmail.com>
Tue, 10 Jul 2018 03:24:18 +0000 (23:24 -0400)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 10 Jul 2018 05:08:40 +0000 (05:08 +0000)
Updates http2 to x/net/http2 git rev 292b43b for:

    http2: reject incoming HEADERS in Server on half-closed streams
    https://golang.org/cl/111677

Updates #25023

Change-Id: I479ae9b5b899fb0202e6301d02535fb6aeb4997a
Reviewed-on: https://go-review.googlesource.com/122877
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 b62459ee80cd889e955001c0b184f556c71d179e..2068a0dc7637e5f226caf94b9d41b59ca0c3f033 100644 (file)
@@ -5466,6 +5466,13 @@ func (sc *http2serverConn) processHeaders(f *http2MetaHeadersFrame) error {
                        // processing this frame.
                        return nil
                }
+               // RFC 7540, sec 5.1: If an endpoint receives additional frames, other than
+               // WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in
+               // this state, it MUST respond with a stream error (Section 5.4.2) of
+               // type STREAM_CLOSED.
+               if st.state == http2stateHalfClosedRemote {
+                       return http2streamError(id, http2ErrCodeStreamClosed)
+               }
                return st.processTrailerHeaders(f)
        }