From ce4276bdd9884d5f32f669877b3e1a582a8008fb Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 7 Oct 2025 16:53:16 +0200 Subject: [PATCH] unittests: clean up memory in fragbits tests --- src/detect-fragbits.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/src/detect-fragbits.c b/src/detect-fragbits.c index 60c82a1d0a..a36828bd77 100644 --- a/src/detect-fragbits.c +++ b/src/detect-fragbits.c @@ -475,9 +475,6 @@ static int FragBitsTestParse03 (void) FAIL_IF(unlikely(p == NULL)); ThreadVars tv; DecodeThreadVars dtv; - int ret = 0; - DetectFragBitsData *de = NULL; - SigMatch *sm = NULL; memset(&tv, 0, sizeof(ThreadVars)); memset(&dtv, 0, sizeof(DecodeThreadVars)); @@ -487,23 +484,24 @@ static int FragBitsTestParse03 (void) DecodeEthernet(&tv, &dtv, p, raw_eth, sizeof(raw_eth)); - de = DetectFragBitsParse("D"); - - FAIL_IF(de == NULL || (de->fragbits != FRAGBITS_HAVE_DF)); + DetectFragBitsData *de = DetectFragBitsParse("D"); + FAIL_IF(de == NULL); + FAIL_IF(de->fragbits != FRAGBITS_HAVE_DF); - sm = SigMatchAlloc(); + SigMatch *sm = SigMatchAlloc(); FAIL_IF(sm == NULL); - sm->type = DETECT_FRAGBITS; sm->ctx = (SigMatchCtx *)de; - ret = DetectFragBitsMatch(NULL, p, NULL, sm->ctx); + int ret = DetectFragBitsMatch(NULL, p, NULL, sm->ctx); FAIL_IF(ret == 0); - FlowShutdown(); SCFree(de); SCFree(sm); - SCFree(p); + PacketFree(p); + + AppLayerDestroyCtxThread(dtv.app_tctx); + FlowShutdown(); PASS; } @@ -557,9 +555,6 @@ static int FragBitsTestParse04 (void) FAIL_IF(unlikely(p == NULL)); ThreadVars tv; DecodeThreadVars dtv; - int ret = 0; - DetectFragBitsData *de = NULL; - SigMatch *sm = NULL; memset(&tv, 0, sizeof(ThreadVars)); memset(&dtv, 0, sizeof(DecodeThreadVars)); @@ -569,25 +564,24 @@ static int FragBitsTestParse04 (void) DecodeEthernet(&tv, &dtv, p, raw_eth, sizeof(raw_eth)); - de = DetectFragBitsParse("!D"); - + DetectFragBitsData *de = DetectFragBitsParse("!D"); FAIL_IF(de == NULL); FAIL_IF(de->fragbits != FRAGBITS_HAVE_DF); FAIL_IF(de->modifier != MODIFIER_NOT); - sm = SigMatchAlloc(); + SigMatch *sm = SigMatchAlloc(); FAIL_IF(sm == NULL); - sm->type = DETECT_FRAGBITS; sm->ctx = (SigMatchCtx *)de; - ret = DetectFragBitsMatch(NULL, p, NULL, sm->ctx); + int ret = DetectFragBitsMatch(NULL, p, NULL, sm->ctx); FAIL_IF(ret); SCFree(de); SCFree(sm); - PacketRecycle(p); + PacketFree(p); + + AppLayerDestroyCtxThread(dtv.app_tctx); FlowShutdown(); - SCFree(p); PASS; }