fuzz: do not reuse global variable named suricata

pull/4945/head
Philippe Antoine 6 years ago committed by Victor Julien
parent 304aedfa95
commit 2fe82ce0d6

@ -29,7 +29,7 @@ AppLayerParserThreadCtx *alp_tctx = NULL;
* destination port (uint16_t) */ * destination port (uint16_t) */
const uint8_t separator[] = {0x01, 0xD5, 0xCA, 0x7A}; const uint8_t separator[] = {0x01, 0xD5, 0xCA, 0x7A};
SCInstance suricata; SCInstance surifuzz;
uint64_t forceLayer = 0; uint64_t forceLayer = 0;
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
@ -59,7 +59,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
//redirect logs to /tmp //redirect logs to /tmp
ConfigSetLogDirectory("/tmp/"); ConfigSetLogDirectory("/tmp/");
PostConfLoadedSetup(&suricata); PostConfLoadedSetup(&surifuzz);
alp_tctx = AppLayerParserThreadCtxAlloc(); alp_tctx = AppLayerParserThreadCtxAlloc();
const char* forceLayerStr = getenv("FUZZ_APPLAYER"); const char* forceLayerStr = getenv("FUZZ_APPLAYER");
if (forceLayerStr) { if (forceLayerStr) {

@ -16,7 +16,7 @@
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
static int initialized = 0; static int initialized = 0;
SCInstance suricata; SCInstance surifuzz;
const char configNoChecksum[] = "\ const char configNoChecksum[] = "\
%YAML 1.1\n\ %YAML 1.1\n\
@ -48,7 +48,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
abort(); abort();
} }
PostConfLoadedSetup(&suricata); PostConfLoadedSetup(&surifuzz);
RunModeInitialize(); RunModeInitialize();
TimeModeSetOffline(); TimeModeSetOffline();

@ -32,7 +32,7 @@ ThreadVars tv;
DecodeThreadVars *dtv; DecodeThreadVars *dtv;
//FlowWorkerThreadData //FlowWorkerThreadData
void *fwd; void *fwd;
SCInstance suricata; SCInstance surifuzz;
const char configNoChecksum[] = "\ const char configNoChecksum[] = "\
%YAML 1.1\n\ %YAML 1.1\n\
@ -155,14 +155,14 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
if (ConfYamlLoadString(configNoChecksum, strlen(configNoChecksum)) != 0) { if (ConfYamlLoadString(configNoChecksum, strlen(configNoChecksum)) != 0) {
abort(); abort();
} }
suricata.sig_file = strdup("/tmp/fuzz.rules"); surifuzz.sig_file = strdup("/tmp/fuzz.rules");
suricata.sig_file_exclusive = 1; surifuzz.sig_file_exclusive = 1;
//loads rules after init //loads rules after init
suricata.delayed_detect = 1; surifuzz.delayed_detect = 1;
PostConfLoadedSetup(&suricata); PostConfLoadedSetup(&surifuzz);
PreRunPostPrivsDropInit(run_mode); PreRunPostPrivsDropInit(run_mode);
PostConfLoadedDetectSetup(&suricata); PostConfLoadedDetectSetup(&surifuzz);
memset(&tv, 0, sizeof(tv)); memset(&tv, 0, sizeof(tv));
dtv = DecodeThreadVarsAlloc(&tv); dtv = DecodeThreadVarsAlloc(&tv);
@ -197,16 +197,16 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
} }
if (pos > 0 && pos < size) { if (pos > 0 && pos < size) {
// dump signatures to a file so as to reuse SigLoadSignatures // dump signatures to a file so as to reuse SigLoadSignatures
if (TestHelperBufferToFile(suricata.sig_file, data, pos-1) < 0) { if (TestHelperBufferToFile(surifuzz.sig_file, data, pos-1) < 0) {
return 0; return 0;
} }
} else { } else {
if (TestHelperBufferToFile(suricata.sig_file, data, pos) < 0) { if (TestHelperBufferToFile(surifuzz.sig_file, data, pos) < 0) {
return 0; return 0;
} }
} }
if (DetectEngineReload(&suricata) < 0) { if (DetectEngineReload(&surifuzz) < 0) {
return 0; return 0;
} }
if (pos < size) { if (pos < size) {

Loading…
Cancel
Save