From: Mike Stepanek (mstepane) Date: Mon, 27 Apr 2020 19:27:36 +0000 (+0000) Subject: Merge pull request #2180 in SNORT/snort3 from ~DERAMADA/snort3:h2i_clear_padding_flag... X-Git-Tag: 3.0.1-3~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ee2e1c0258599332f8937bd21400e0624395daf;p=thirdparty%2Fsnort3.git Merge pull request #2180 in SNORT/snort3 from ~DERAMADA/snort3:h2i_clear_padding_flag to master Squashed commit of the following: commit f513b97ed307fbc72dd0b31d6bfa70dba0e06b7e Author: deramada Date: Thu Apr 23 15:49:22 2020 -0400 http2_inspect: update padding check only for header and data frames --- diff --git a/src/service_inspectors/http2_inspect/http2_stream_splitter_impl.cc b/src/service_inspectors/http2_inspect/http2_stream_splitter_impl.cc index 478e149fa..e1a691988 100644 --- a/src/service_inspectors/http2_inspect/http2_stream_splitter_impl.cc +++ b/src/service_inspectors/http2_inspect/http2_stream_splitter_impl.cc @@ -482,8 +482,16 @@ const StreamBuffer Http2StreamSplitter::implement_reassemble(Http2FlowData* sess uint8_t frame_flags = get_frame_flags(session_data->frame_header[source_id] + session_data->frame_header_offset[source_id] - FRAME_HEADER_LENGTH); - if (frame_flags & PADDED) - session_data->get_padding_len[source_id] = true; + + const uint8_t type = session_data->frame_type[source_id]; + if ((type == FT_DATA) || (type == FT_HEADERS)) + { + if ((frame_flags & PADDED) && + (get_frame_length(session_data->frame_header[source_id]) >= 1)) + { + session_data->get_padding_len[source_id] = true; + } + } } while (data_offset < len); session_data->frame_type[source_id] = get_frame_type(