DetectEngineCtx *DetectEngineCtxInitWithPrefix(const char *prefix)
{
- return DetectEngineCtxInitReal(0, prefix);
+ if (prefix == NULL || strlen(prefix) == 0)
+ return DetectEngineCtxInit();
+ else
+ return DetectEngineCtxInitReal(0, prefix);
}
static void DetectEngineCtxFreeThreadKeywordData(DetectEngineCtx *de_ctx)
DetectEngineCtxFreeThreadKeywordData(de_ctx);
SRepDestroy(de_ctx);
+
+ /* if we have a config prefix, remove the config from the tree */
+ if (strlen(de_ctx->config_prefix) > 0) {
+ /* remove config */
+ ConfNode *node = ConfGetNode(de_ctx->config_prefix);
+ if (node != NULL) {
+ ConfNodeRemove(node); /* frees node */
+ }
+#if 0
+ ConfDump();
+#endif
+ }
+
SCFree(de_ctx);
//DetectAddressGroupPrintMemory();
//DetectSigGroupPrintMemory();