tree d3c3055159af8fc71b2109f070674f391e5c265a
parent 19944ee00bf4e8f64a543205f34028431c9fa60f
author QUICHE team <quiche-dev@google.com> 1642532015 -0800
committer Copybara-Service <copybara-worker@google.com> 1642532074 -0800

Perform content-length validation in OgHttp2Session.

This CL validates the content-length header value in HeaderValidator and allows
the value to be checked in OgHttp2Session when comparing against actual
received body lengths for a stream. If there is a mismatch between the
content-length header value and the total body length received, OgHttp2Session
invokes the visitor OnInvalidFrame() callback and enqueues a RST_STREAM.

This change better aligns oghttp2 with nghttp2 on content-length validation,
but at least one remaining difference is that nghttp2 invokes OnInvalidFrame()
(leading to connection-level error-signalling in Envoy) only when the
content-length mismatch happens with HEADERS ending the stream [1]. The
OnInvalidFrame() --> connection error is important at least for a
content-length integration test. Therefore, oghttp2 also calls OnInvalidFrame()
for content-length mismatch, but regardless of whether HEADERS or DATA ends the
stream for unity. (Ideally, content-length mismatch on one stream should not
cause a connection-level error; perhaps this can be fixed once migration to
oghttp2 is complete.)

With this CL, MultiplexedIntegrationTest.InconsistentContentLength passes with
oghttp2 (http://sponge2/663d811a-e662-44c0-b003-a4d7fcb13d42).

[1] Compare HEADERS at
http://google3/third_party/nghttp2/src/lib/nghttp2_session.c;l=3778,3790-3791;rcl=421446478
to DATA at
http://google3/third_party/nghttp2/src/lib/nghttp2_session.c;l=4961-4963;rcl=421446478.

PiperOrigin-RevId: 422597021
