if (mpm_ctx == NULL)
return;
- if (!MpmFactoryIsMpmCtxAvailable(de_ctx, mpm_ctx))
+ if (!MpmFactoryIsMpmCtxAvailable(de_ctx, mpm_ctx)) {
+ mpm_table[mpm_ctx->mpm_type].DestroyCtx(mpm_ctx);
SCFree(mpm_ctx);
+ }
return;
}
for (i = 0; i < de_ctx->mpm_ctx_factory_container->no_of_items; i++) {
if (items[i].name != NULL)
SCFree(items[i].name);
- if (items[i].mpm_ctx_ts != NULL)
+ if (items[i].mpm_ctx_ts != NULL) {
+ mpm_table[items[i].mpm_ctx_ts->mpm_type].DestroyCtx(items[i].mpm_ctx_ts);
SCFree(items[i].mpm_ctx_ts);
- if (items[i].mpm_ctx_tc != NULL)
+ }
+ if (items[i].mpm_ctx_tc != NULL) {
+ mpm_table[items[i].mpm_ctx_tc->mpm_type].DestroyCtx(items[i].mpm_ctx_tc);
SCFree(items[i].mpm_ctx_tc);
+ }
}
SCFree(de_ctx->mpm_ctx_factory_container->items);