From: Victor Julien Date: Wed, 10 Dec 2014 09:54:22 +0000 (+0100) Subject: AC: fix memory leak X-Git-Tag: suricata-2.1beta3~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1295%2Fhead;p=thirdparty%2Fsuricata.git AC: fix memory leak --- diff --git a/src/util-mpm-ac.c b/src/util-mpm-ac.c index 6cf05c1ffc..c8f6be77a2 100644 --- a/src/util-mpm-ac.c +++ b/src/util-mpm-ac.c @@ -218,6 +218,10 @@ static inline void SCACFreePattern(MpmCtx *mpm_ctx, SCACPattern *p) mpm_ctx->memory_size -= p->len; } + if (p != NULL && p->sids != NULL) { + SCFree(p->sids); + } + if (p != NULL) { SCFree(p); mpm_ctx->memory_cnt--; @@ -1089,6 +1093,9 @@ int SCACPreparePatterns(MpmCtx *mpm_ctx) //SCLogInfo("ctx->parray[i]->sids_size %u", ctx->parray[i]->sids_size); ctx->pid_pat_list[ctx->parray[i]->id].sids_size = ctx->parray[i]->sids_size; ctx->pid_pat_list[ctx->parray[i]->id].sids = ctx->parray[i]->sids; + + ctx->parray[i]->sids_size = 0; + ctx->parray[i]->sids = NULL; } /* prepare the state table required by AC */