From 304aedfa95d3164e898e9b954d41de71bc22f290 Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Mon, 11 May 2020 14:06:10 +0200 Subject: [PATCH] fuzz: improves sigpcap target So that it can cover alert generation ie in function DetectRun, get past scratch.sgh == NULL condition --- src/suricata.c | 2 +- src/suricata.h | 1 + src/tests/fuzz/fuzz_sigpcap.c | 8 ++------ 3 files changed, 4 insertions(+), 7 deletions(-) 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); -- 2.47.2