From: Philippe Antoine Date: Thu, 17 Jun 2021 13:02:30 +0000 (+0200) Subject: fuzz: target for applayer cleans transactions X-Git-Tag: suricata-7.0.0-beta1~952 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b39554b11fe1b6f3d880c3d548287934880a3c2c;p=thirdparty%2Fsuricata.git fuzz: target for applayer cleans transactions Ticket: 4530 Otherwise, we timeout because we kept too many of them as Suricata would not --- diff --git a/src/tests/fuzz/fuzz_applayerparserparse.c b/src/tests/fuzz/fuzz_applayerparserparse.c index bc8efea806..945cb32c35 100644 --- a/src/tests/fuzz/fuzz_applayerparserparse.c +++ b/src/tests/fuzz/fuzz_applayerparserparse.c @@ -117,6 +117,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) f->alproto = data[0]; } + FLOWLOCK_WRLOCK(f); /* * We want to fuzz multiple calls to AppLayerParserParse * because some parts of the code are only reached after @@ -163,6 +164,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) alsize = 0; break; } + + AppLayerParserTransactionsCleanup(f); } alsize -= alnext - albuffer + 4; albuffer = alnext + 4; @@ -191,6 +194,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) free(isolatedBuffer); } + FLOWLOCK_UNLOCK(f); FlowFree(f); return 0;