From e6248b0dbe849274871a7291019ad337fba90e02 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 12 Oct 2015 20:05:42 +0200 Subject: [PATCH] detect: clean up sgh's at detect engine free --- src/detect.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/detect.c b/src/detect.c index 64c14025be..475bbbb5a4 100644 --- a/src/detect.c +++ b/src/detect.c @@ -3943,6 +3943,19 @@ int SigAddressCleanupStage1(DetectEngineCtx *de_ctx) de_ctx->flow_gh[f].udp = NULL; } + uint32_t idx; + for (idx = 0; idx < de_ctx->sgh_array_cnt; idx++) { + SigGroupHead *sgh = de_ctx->sgh_array[idx]; + if (sgh == NULL) + continue; + + SCLogDebug("sgh %p", sgh); + SigGroupHeadFree(sgh); + } + SCFree(de_ctx->sgh_array); + de_ctx->sgh_array = NULL; + de_ctx->sgh_array_cnt = 0; + de_ctx->sgh_array_size = 0; IPOnlyDeinit(de_ctx, &de_ctx->io_ctx); @@ -4019,6 +4032,8 @@ int SigAddressPrepareStage4(DetectEngineCtx *de_ctx) if (sgh == NULL) continue; + SCLogDebug("sgh %p", sgh); + SigGroupHeadSetFilemagicFlag(de_ctx, sgh); SigGroupHeadSetFileMd5Flag(de_ctx, sgh); SigGroupHeadSetFilesizeFlag(de_ctx, sgh); @@ -4051,10 +4066,6 @@ int SigAddressPrepareStage4(DetectEngineCtx *de_ctx) SigGroupHeadHashFree(de_ctx); SigGroupHeadDPortHashFree(de_ctx); - SCFree(de_ctx->sgh_array); - de_ctx->sgh_array_cnt = 0; - de_ctx->sgh_array_size = 0; - RulesDumpGrouping(de_ctx); SCReturnInt(0);