From: Philippe Antoine Date: Mon, 11 May 2020 12:06:10 +0000 (+0200) Subject: fuzz: improves sigpcap target X-Git-Tag: suricata-6.0.0-beta1~424 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=304aedfa95d3164e898e9b954d41de71bc22f290;p=thirdparty%2Fsuricata.git fuzz: improves sigpcap target So that it can cover alert generation ie in function DetectRun, get past scratch.sgh == NULL condition --- diff --git a/src/suricata.c b/src/suricata.c index 60d421df2d..8b92a84205 100644 --- a/src/suricata.c +++ b/src/suricata.c @@ -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) { diff --git a/src/suricata.h b/src/suricata.h index 3aa2406afc..7bd87a0e16 100644 --- a/src/suricata.h +++ b/src/suricata.h @@ -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); diff --git a/src/tests/fuzz/fuzz_sigpcap.c b/src/tests/fuzz/fuzz_sigpcap.c index 9920e6955a..43b10f0765 100644 --- a/src/tests/fuzz/fuzz_sigpcap.c +++ b/src/tests/fuzz/fuzz_sigpcap.c @@ -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);