]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
file detect: improve cleanup
authorVictor Julien <victor@inliniac.net>
Tue, 3 Jul 2012 11:08:30 +0000 (13:08 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 3 Jul 2012 11:08:30 +0000 (13:08 +0200)
src/detect-fileext.c
src/detect-filemagic.c
src/detect-filename.c
src/detect-filestore.c

index e6c9ec9d519589894f0f28412718c921b329a912..2b874a5d76fe0150e16b76f7e1d5a5edd1ea01cb 100644 (file)
@@ -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);
     }
 }
index e6f093dbf9a12ee085632f4105a45382f03efc7a..d58e73f8bb80baf2682c30620ddb9258ef4af613 100644 (file)
@@ -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);
     }
 }
index 2ec9c8bb3fa23e4ca44fb41df8ad53ac5469e502..5c9e6759fdb5ff16d2a5be17cf98372a24428034 100644 (file)
@@ -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);
     }
 }
index 8bad0a34fbdd3c1838f9f3e3cb4ec1832552f902..be811e64346f13c96682f86ea60c6f07865d3996 100644 (file)
@@ -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);
+    }
+}