| Index: net/quic/quic_http_stream.cc
|
| diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc
|
| index d3fd026570810ccb184bacaf05b0e6455a234b9d..a027dcfac73aca1d34c43bdb41729c276bd346a8 100644
|
| --- a/net/quic/quic_http_stream.cc
|
| +++ b/net/quic/quic_http_stream.cc
|
| @@ -706,15 +706,19 @@ int QuicHttpStream::DoReadRequestBody() {
|
| }
|
|
|
| int QuicHttpStream::DoReadRequestBodyComplete(int rv) {
|
| - // |rv| is the result of read from the request body from the last call to
|
| - // DoSendBody().
|
| - if (rv < 0)
|
| - return rv;
|
| -
|
| // If the stream is already closed, don't continue.
|
| if (!stream_)
|
| return response_status_;
|
|
|
| + // |rv| is the result of read from the request body from the last call to
|
| + // DoSendBody().
|
| + if (rv < 0) {
|
| + stream_->SetDelegate(nullptr);
|
| + stream_->Reset(QUIC_ERROR_PROCESSING_STREAM);
|
| + ResetStream();
|
| + return rv;
|
| + }
|
| +
|
| request_body_buf_ = new DrainableIOBuffer(raw_request_body_buf_.get(), rv);
|
| if (rv == 0) { // Reached the end.
|
| DCHECK(request_body_stream_->IsEOF());
|
|
|