You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Receipt of an invalid sequence of frames MUST be treated as a connection error of type H3_FRAME_UNEXPECTED. In particular, a DATA frame before any HEADERS frame, or a HEADERS or DATA frame after the trailing HEADERS frame, is considered invalid. Other frame types, especially unknown frame types, might be permitted subject to their own rules; see Section 9.
After fixing this race condition in the test, some tests fail. For example request_invalid_two_trailers.
Some Things regarding Protocol are validated, and errors are returned to the user of h3. But as far as I can See, neiter the stream is getting closed nor the Connection. The Error is just returned to the User.
Why the tests did not catch it
In
h3/src/tests/request.rs
is the reusable methodrequest_sequence_check
h3/h3/src/tests/request.rs
Lines 1421 to 1472 in dbf2523
Important are the lines
h3/h3/src/tests/request.rs
Lines 1470 to 1471 in dbf2523
Because this is an
select!
instead of anjoin
, the test often skips thecheck(res)
calls in theclient_fut
.h3/h3/src/tests/request.rs
Line 1445 in dbf2523
If this happens, the tests, test only if the server recognizes the error, but not if the connection is closed because of the error.
Some violations within the Request stream MUST be a Connection error. The Test completely misses this.
For example https://www.rfc-editor.org/rfc/rfc9114.html#name-http-message-framing
After fixing this race condition in the test, some tests fail. For example
request_invalid_two_trailers
.The Problem
Looking at the code of
poll_recv_trailers
:h3/h3/src/connection.rs
Lines 797 to 879 in dbf2523
Some Things regarding Protocol are validated, and errors are returned to the user of h3. But as far as I can See, neiter the stream is getting closed nor the Connection. The Error is just returned to the User.
I noticed the same for
poll_recv_data
h3/h3/src/connection.rs
Lines 740 to 787 in dbf2523
The text was updated successfully, but these errors were encountered: