]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
transform: use generic Free function
authorPhilippe Antoine <contact@catenacyber.fr>
Thu, 18 Mar 2021 15:07:55 +0000 (16:07 +0100)
committerVictor Julien <victor@inliniac.net>
Tue, 21 Sep 2021 05:13:59 +0000 (07:13 +0200)
to free subelements in the context structure

src/detect-engine-build.c
src/detect-parse.c

index 6a2790f73e1fd961b245d9cbcf954cfbea53d370..c5eef029f4bf5eb5c307486e2784ef0617d43790 100644 (file)
@@ -1908,7 +1908,9 @@ static int SigMatchPrepare(DetectEngineCtx *de_ctx)
         SCFree(s->init_data->smlists_tail);
         for (i = 0; i < (uint32_t)s->init_data->transforms.cnt; i++) {
             if (s->init_data->transforms.transforms[i].options) {
-                SCFree(s->init_data->transforms.transforms[i].options);
+                int transform = s->init_data->transforms.transforms[i].transform;
+                sigmatch_table[transform].Free(
+                        de_ctx, s->init_data->transforms.transforms[i].options);
                 s->init_data->transforms.transforms[i].options = NULL;
             }
         }
index 35c8085c82cd3006d0c3880ba30bcd3e05adbb4f..909c2f14775eefc89c154ce850ff738167f91a9d 100644 (file)
@@ -1401,7 +1401,9 @@ void SigFree(DetectEngineCtx *de_ctx, Signature *s)
     if (s->init_data && s->init_data->transforms.cnt) {
         for(i = 0; i < s->init_data->transforms.cnt; i++) {
             if (s->init_data->transforms.transforms[i].options) {
-                SCFree(s->init_data->transforms.transforms[i].options);
+                int transform = s->init_data->transforms.transforms[i].transform;
+                sigmatch_table[transform].Free(
+                        de_ctx, s->init_data->transforms.transforms[i].options);
                 s->init_data->transforms.transforms[i].options = NULL;
             }
         }