Commit 608ddc38 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

net/http: update bundled http2

Updates x/net/http2 to git rev 341cd08 for https://golang.org/cl/18576

Change-Id: If5dcb60ac449b798c34fe332ede5ec74e66eb9db
Reviewed-on: https://go-review.googlesource.com/18579Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
parent aba62502
...@@ -5353,9 +5353,23 @@ func (rl *http2clientConnReadLoop) processData(f *http2DataFrame) error { ...@@ -5353,9 +5353,23 @@ func (rl *http2clientConnReadLoop) processData(f *http2DataFrame) error {
cc := rl.cc cc := rl.cc
cs := cc.streamByID(f.StreamID, f.StreamEnded()) cs := cc.streamByID(f.StreamID, f.StreamEnded())
if cs == nil { if cs == nil {
cc.mu.Lock()
neverSent := cc.nextStreamID
cc.mu.Unlock()
if f.StreamID >= neverSent {
cc.logf("http2: Transport received unsolicited DATA frame; closing connection")
return http2ConnectionError(http2ErrCodeProtocol)
}
return nil return nil
} }
data := f.Data() if data := f.Data(); len(data) > 0 {
if cs.bufPipe.b == nil {
cc.logf("http2: Transport received DATA frame for closed stream; closing connection")
return http2ConnectionError(http2ErrCodeProtocol)
}
cc.mu.Lock() cc.mu.Lock()
if cs.inflow.available() >= int32(len(data)) { if cs.inflow.available() >= int32(len(data)) {
...@@ -5369,6 +5383,7 @@ func (rl *http2clientConnReadLoop) processData(f *http2DataFrame) error { ...@@ -5369,6 +5383,7 @@ func (rl *http2clientConnReadLoop) processData(f *http2DataFrame) error {
if _, err := cs.bufPipe.Write(data); err != nil { if _, err := cs.bufPipe.Write(data); err != nil {
return err return err
} }
}
if f.StreamEnded() { if f.StreamEnded() {
rl.endStream(cs) rl.endStream(cs)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment