]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
stream/reassembly: make max-regions configurable; set default
authorVictor Julien <vjulien@oisf.net>
Mon, 9 Jan 2023 16:53:07 +0000 (17:53 +0100)
committerVictor Julien <vjulien@oisf.net>
Wed, 18 Jan 2023 14:28:19 +0000 (15:28 +0100)
src/stream-tcp-reassemble.c

index ce5f90309b2210bf684e9bb8ab453c23e413c65d..8cde25e23f26db10070840523ac4bc60b98190e3 100644 (file)
@@ -484,7 +484,22 @@ static int StreamTcpReassemblyConfig(bool quiet)
         StreamTcpReassembleConfigEnableOverlapCheck();
     }
 
+    uint16_t max_regions = 8;
+    ConfNode *mr = ConfGetNode("stream.reassembly.max-regions");
+    if (mr) {
+        uint16_t max_r = 0;
+        if (StringParseUint16(&max_r, 10, (uint16_t)strlen(mr->val), mr->val) < 0) {
+            SCLogError("max-regions %s is invalid", mr->val);
+            return -1;
+        }
+        max_regions = max_r;
+    }
+    if (!quiet)
+        SCLogConfig("stream.reassembly \"max-regions\": %u", max_regions);
+
+    stream_config.prealloc_segments = segment_prealloc;
     stream_config.sbcnf.buf_size = 2048;
+    stream_config.sbcnf.max_regions = max_regions;
     stream_config.sbcnf.Calloc = ReassembleCalloc;
     stream_config.sbcnf.Realloc = StreamTcpReassembleRealloc;
     stream_config.sbcnf.Free = ReassembleFree;