From: Victor Julien Date: Tue, 3 Jul 2012 11:08:30 +0000 (+0200) Subject: file detect: improve cleanup X-Git-Tag: suricata-1.3~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d840308ae26474a893c19ea0cf42d3dee60bd171;p=thirdparty%2Fsuricata.git file detect: improve cleanup --- diff --git a/src/detect-fileext.c b/src/detect-fileext.c index e6c9ec9d51..2b874a5d76 100644 --- a/src/detect-fileext.c +++ b/src/detect-fileext.c @@ -227,6 +227,8 @@ error: void DetectFileextFree(void *ptr) { if (ptr != NULL) { DetectFileextData *fileext = (DetectFileextData *)ptr; + if (fileext->ext != NULL) + SCFree(fileext->ext); SCFree(fileext); } } diff --git a/src/detect-filemagic.c b/src/detect-filemagic.c index e6f093dbf9..d58e73f8bb 100644 --- a/src/detect-filemagic.c +++ b/src/detect-filemagic.c @@ -297,6 +297,8 @@ void DetectFilemagicFree(void *ptr) { if (filemagic->bm_ctx != NULL) { BoyerMooreCtxDeInit(filemagic->bm_ctx); } + if (filemagic->name != NULL) + SCFree(filemagic->name); SCFree(filemagic); } } diff --git a/src/detect-filename.c b/src/detect-filename.c index 2ec9c8bb3f..5c9e6759fd 100644 --- a/src/detect-filename.c +++ b/src/detect-filename.c @@ -238,6 +238,8 @@ void DetectFilenameFree(void *ptr) { if (filename->bm_ctx != NULL) { BoyerMooreCtxDeInit(filename->bm_ctx); } + if (filename->name != NULL) + SCFree(filename->name); SCFree(filename); } } diff --git a/src/detect-filestore.c b/src/detect-filestore.c index 8bad0a34fb..be811e6434 100644 --- a/src/detect-filestore.c +++ b/src/detect-filestore.c @@ -59,6 +59,7 @@ static pcre_extra *parse_regex_study; int DetectFilestoreMatch (ThreadVars *, DetectEngineThreadCtx *, Flow *, uint8_t, void *, Signature *, SigMatch *); static int DetectFilestoreSetup (DetectEngineCtx *, Signature *, char *); +static void DetectFilestoreFree(void *); /** * \brief Registration function for keyword: filestore @@ -69,7 +70,7 @@ void DetectFilestoreRegister(void) { sigmatch_table[DETECT_FILESTORE].AppLayerMatch = DetectFilestoreMatch; sigmatch_table[DETECT_FILESTORE].alproto = ALPROTO_HTTP; sigmatch_table[DETECT_FILESTORE].Setup = DetectFilestoreSetup; - sigmatch_table[DETECT_FILESTORE].Free = NULL; + sigmatch_table[DETECT_FILESTORE].Free = DetectFilestoreFree; sigmatch_table[DETECT_FILESTORE].RegisterTests = NULL; const char *eb; @@ -417,3 +418,9 @@ error: SCFree(sm); return -1; } + +static void DetectFilestoreFree(void *ptr) { + if (ptr != NULL) { + SCFree(ptr); + } +}