From e383cc27cd459af1b720a2f3be73c757464bfad0 Mon Sep 17 00:00:00 2001 From: Anoop Saldanha Date: Sun, 29 Sep 2013 22:15:46 +0530 Subject: [PATCH] Fix a leak in probing parsers. We were freeing just the head of the list, instead of all the members. --- src/app-layer-detect-proto.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app-layer-detect-proto.c b/src/app-layer-detect-proto.c index 76263961cc..5f10310e40 100644 --- a/src/app-layer-detect-proto.c +++ b/src/app-layer-detect-proto.c @@ -116,9 +116,9 @@ static void AlpProtoAddSignature(AlpProtoDetectCtx *ctx, DetectContentData *co, ctx->sigs++; } -#ifdef UNITTESTS /** \brief free a AlpProtoSignature, recursively free any next sig */ -static void AlpProtoFreeSignature(AlpProtoSignature *s) { +static void AlpProtoFreeSignature(AlpProtoSignature *s) +{ if (s == NULL) return; @@ -132,7 +132,6 @@ static void AlpProtoFreeSignature(AlpProtoSignature *s) { AlpProtoFreeSignature(next_s); } -#endif /** * \brief Match a AlpProtoSignature against a buffer @@ -254,6 +253,7 @@ void AlpProtoDestroy() { mpm_table[alp_proto_ctx.toserver.mpm_ctx.mpm_type].DestroyCtx(&alp_proto_ctx.toserver.mpm_ctx); mpm_table[alp_proto_ctx.toclient.mpm_ctx.mpm_type].DestroyCtx(&alp_proto_ctx.toclient.mpm_ctx); MpmPatternIdTableFreeHash(alp_proto_ctx.mpm_pattern_id_store); + AlpProtoFreeSignature(alp_proto_ctx.head); AppLayerFreeProbingParsers(alp_proto_ctx.probing_parsers); alp_proto_ctx.probing_parsers = NULL; -- 2.47.2