commit | a1fb8becdf2da367a2df4b259e3df298e898041d | [log] [tgz] |
---|---|---|
author | bnc <bnc@google.com> | Wed Nov 18 15:24:29 2020 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Nov 18 15:25:35 2020 -0800 |
tree | b712c5ced98723c4eb0f143ba7571b5540e5519a | |
parent | 8a67cc8ec5c0e931fcf19fd5e032dbb3e97cefbd [diff] |
Abort QPACK decompression when stream is reset. Incorrect header acknowledgements are still detected in the wild. QPACK decompression is currently aborted in QuicStream::OnClose() (gated by quic_abort_qpack_on_stream_close flag). However, when a RESET_STREAM frame is received closing the read side of the stream, it is possible that the write side is still open and therefore OnClose() is not called immediately. This CL destroys qpack_decoded_headers_accumulator_ in both places where a reset stream instruction is sent on the decoder stream, making sure dynamic table entries received later do not trigger sending a bogus header acknowledgement instruction. Protected by FLAGS_quic_reloadable_flag_quic_abort_qpack_on_stream_reset. PiperOrigin-RevId: 343167912 Change-Id: Iad27fff7e3a78d62a4137312d4e79eff436eae98
QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects. QUICHE is only supported on little-endian platforms.
Code can be viewed in CodeSearch in Quiche and is imported into Chromium.