diff --git a/src/app-layer-htp.c b/src/app-layer-htp.c index 653375170c..94fcd6732a 100644 --- a/src/app-layer-htp.c +++ b/src/app-layer-htp.c @@ -644,6 +644,8 @@ void HtpBodyFree(HtpBody *body) prev = body->first; while (prev != NULL) { cur = prev->next; + if (prev->data != NULL) + SCFree(prev->data); SCFree(prev); prev = cur; } @@ -716,12 +718,12 @@ void HTPFreeConfig(void) HTPCfgRec *nextrec = cfglist.next; SCRadixReleaseRadixTree(cfgtree); - SCFree(cfglist.cfg); + htp_config_destroy(cfglist.cfg); while (nextrec != NULL) { HTPCfgRec *htprec = nextrec; nextrec = nextrec->next; - SCFree(htprec->cfg); + htp_config_destroy(htprec->cfg); SCFree(htprec); } SCReturn; diff --git a/src/util-radix-tree.c b/src/util-radix-tree.c index cf7b966fbd..ab82447f77 100644 --- a/src/util-radix-tree.c +++ b/src/util-radix-tree.c @@ -456,6 +456,8 @@ static void SCRadixReleasePrefix(SCRadixPrefix *prefix, SCRadixTree *tree) tree->Free(user_data_temp2->user); SCRadixDeAllocSCRadixUserData(user_data_temp2); } + } else if (user_data_temp1 != NULL) { + SCFree(user_data_temp1); } SCFree(prefix);