]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
fuzz: improves sigpcap target 4939/head
authorPhilippe Antoine <contact@catenacyber.fr>
Mon, 11 May 2020 12:06:10 +0000 (14:06 +0200)
committerPhilippe Antoine <contact@catenacyber.fr>
Wed, 13 May 2020 19:30:08 +0000 (21:30 +0200)
So that it can cover alert generation
ie in function DetectRun, get past scratch.sgh == NULL condition

src/suricata.c
src/suricata.h
src/tests/fuzz/fuzz_sigpcap.c

index 60d421df2d90c5594e8bee1b7da93ce94a65a742..8b92a842053a24c4d81cdf5a1001fab5e4134d75 100644 (file)
@@ -2282,7 +2282,7 @@ static void PostRunStartedDetectSetup(const SCInstance *suri)
     }
 }
 
-static void PostConfLoadedDetectSetup(SCInstance *suri)
+void PostConfLoadedDetectSetup(SCInstance *suri)
 {
     DetectEngineCtx *de_ctx = NULL;
     if (!suri->disabled_detect) {
index 3aa2406afc8e400c0f9b073d233a851a1b117d25..7bd87a0e16a1f9fdbd199b693fdcf8198db87f9a 100644 (file)
@@ -186,6 +186,7 @@ extern int run_mode;
 int SuricataMain(int argc, char **argv);
 int InitGlobal(void);
 int PostConfLoadedSetup(SCInstance *suri);
+void PostConfLoadedDetectSetup(SCInstance *suri);
 
 void PreRunInit(const int runmode);
 void PreRunPostPrivsDropInit(const int runmode);
index 9920e6955af4612542447e26ba9884a1417e90fb..43b10f07657e95900906abba58e26f8bf33f1d17 100644 (file)
@@ -147,6 +147,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
 
         InitGlobal();
 
+        GlobalsInitPreConfig();
         run_mode = RUNMODE_PCAP_FILE;
         //redirect logs to /tmp
         ConfigSetLogDirectory("/tmp/");
@@ -159,14 +160,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
         //loads rules after init
         suricata.delayed_detect = 1;
 
-        SupportFastPatternForSigMatchTypes();
         PostConfLoadedSetup(&suricata);
         PreRunPostPrivsDropInit(run_mode);
-
-        //dummy init before DetectEngineReload
-        DetectEngineCtx * de_ctx = DetectEngineCtxInit();
-        de_ctx->flags |= DE_QUIET;
-        DetectEngineAddToMaster(de_ctx);
+        PostConfLoadedDetectSetup(&suricata);
 
         memset(&tv, 0, sizeof(tv));
         dtv = DecodeThreadVarsAlloc(&tv);