http2/ 4.2.3 doesn't make big enough headers
ioquatix opened this issue · 0 comments
ioquatix commented
I've been testing this on my server:
Here are the settings which are pending when the connection is open, note the maximum frame size is extended:
@current=
#<Protocol::HTTP2::Settings:0x00007fc2a21985e0
@enable_connect_protocol=0,
@enable_push=1,
@header_table_size=4096,
@initial_window_size=65535,
@maximum_concurrent_streams=4294967295,
@maximum_frame_size=16384,
@maximum_header_list_size=4294967295>,
@pending=
#<Protocol::HTTP2::Settings:0x00007fc2a2198540
@enable_connect_protocol=0,
@enable_push=1,
@header_table_size=4096,
@initial_window_size=2147483647,
@maximum_concurrent_streams=32,
@maximum_frame_size=1048576,
@maximum_header_list_size=4294967295>,
@queue=[{3=>32, 5=>1048576, 4=>2147483647, 8=>1}]>
The h2spec client sends an Settings acknowlegement frame
framer: read_frame Protocol::HTTP2::SettingsFrame 0 (16384)
true -> []
So because of that, the maximum frame size is now 1048576. The next frame is not big enough to trigger the desired failure:
framer: read_frame Protocol::HTTP2::HeadersFrame 17575 (max=1048576)
× 3: Sends a large size HEADERS frame that exceeds the SETTINGS_MAX_FRAME_SIZE
-> The endpoint MUST respond with a connection error of type FRAME_SIZE_ERROR.
Expected: GOAWAY Frame (Error Code: FRAME_SIZE_ERROR)