]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2180 in SNORT/snort3 from ~DERAMADA/snort3:h2i_clear_padding_flag...
authorMike Stepanek (mstepane) <mstepane@cisco.com>
Mon, 27 Apr 2020 19:27:36 +0000 (19:27 +0000)
committerMike Stepanek (mstepane) <mstepane@cisco.com>
Mon, 27 Apr 2020 19:27:36 +0000 (19:27 +0000)
Squashed commit of the following:

commit f513b97ed307fbc72dd0b31d6bfa70dba0e06b7e
Author: deramada <deramada@cisco.com>
Date:   Thu Apr 23 15:49:22 2020 -0400

    http2_inspect: update padding check only for header and data frames

src/service_inspectors/http2_inspect/http2_stream_splitter_impl.cc

index 478e149fa66b6b7dbdf9adc1b887776d2f0d23d8..e1a691988e70e42ca883e2ea1bdf2e75fd48e5cb 100644 (file)
@@ -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(