]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/profiling: use dynamic number of app-layer protos
authorPhilippe Antoine <pantoine@oisf.net>
Fri, 21 Jun 2024 17:22:10 +0000 (19:22 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 2 Jul 2024 09:52:38 +0000 (11:52 +0200)
src/decode.h
src/util-profiling.c

index eafdf35f4d5fe44a88635fb7fb04f3ee72839bc7..0f7c9fa7465b81f6b1bac6026238140c206e89a9 100644 (file)
@@ -355,10 +355,10 @@ typedef struct PktProfiling_ {
 
     PktProfilingTmmData tmm[TMM_SIZE];
     PktProfilingData flowworker[PROFILE_FLOWWORKER_SIZE];
-    PktProfilingAppData app[ALPROTO_MAX];
     PktProfilingDetectData detect[PROF_DETECT_SIZE];
     PktProfilingLoggerData logger[LOGGER_SIZE];
     uint64_t proto_detect;
+    PktProfilingAppData app[];
 } PktProfiling;
 
 #endif /* PROFILING */
index 11b8535662782fd00eb19d20352a68eeab118f5d..1bf558a9d5572b7663f367c2a53e150de1a93cd6 100644 (file)
@@ -1195,9 +1195,8 @@ PktProfiling *SCProfilePacketStart(void)
 {
     uint64_t sample = SC_ATOMIC_ADD(samples, 1);
     if (sample % rate == 0)
-        return SCCalloc(1, sizeof(PktProfiling));
-    else
-        return NULL;
+        return SCCalloc(1, sizeof(PktProfiling) + ALPROTO_MAX * sizeof(PktProfilingAppData));
+    return NULL;
 }
 
 /* see if we want to profile rules for this packet */