Do not call MarkConsumed() from OnHeadersFramePayload() after decoding error.
gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 282593548
Change-Id: I7d43611cb21d2059b5d4a0ec0d09078a3c084169
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index fe990fc..b0c4343 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -919,10 +919,14 @@
}
qpack_decoded_headers_accumulator_->Decode(payload);
- sequencer()->MarkConsumed(body_manager_.OnNonBody(payload.size()));
// |qpack_decoded_headers_accumulator_| is reset if an error is detected.
- return qpack_decoded_headers_accumulator_ != nullptr;
+ if (!qpack_decoded_headers_accumulator_) {
+ return false;
+ }
+
+ sequencer()->MarkConsumed(body_manager_.OnNonBody(payload.size()));
+ return true;
}
bool QuicSpdyStream::OnHeadersFrameEnd() {