diff --git a/src/detect-engine.c b/src/detect-engine.c index b6d2d42376..12b1683c59 100644 --- a/src/detect-engine.c +++ b/src/detect-engine.c @@ -2495,6 +2495,20 @@ static DetectEngineCtx *DetectEngineCtxInitReal( de_ctx->filemagic_thread_ctx_id = -1; de_ctx->tenant_id = tenant_id; + de_ctx->mpm_matcher = PatternMatchDefaultMatcher(); + de_ctx->spm_matcher = SinglePatternMatchDefaultMatcher(); + + if (mpm_table[de_ctx->mpm_matcher].ConfigInit) { + de_ctx->mpm_cfg = mpm_table[de_ctx->mpm_matcher].ConfigInit(); + if (de_ctx->mpm_cfg == NULL) { + goto error; + } + } + if (DetectEngineMpmCachingEnabled() && mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet) { + mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet( + de_ctx->mpm_cfg, DetectEngineMpmCachingGetPath()); + } + if (type == DETECT_ENGINE_TYPE_DD_STUB || type == DETECT_ENGINE_TYPE_MT_STUB) { de_ctx->version = DetectEngineGetVersion(); SCLogDebug("stub %u with version %u", type, de_ctx->version); @@ -2511,23 +2525,8 @@ static DetectEngineCtx *DetectEngineCtxInitReal( } de_ctx->failure_fatal = (failure_fatal == 1); - de_ctx->mpm_matcher = PatternMatchDefaultMatcher(); - de_ctx->spm_matcher = SinglePatternMatchDefaultMatcher(); - SCLogConfig("pattern matchers: MPM: %s, SPM: %s", - mpm_table[de_ctx->mpm_matcher].name, - spm_table[de_ctx->spm_matcher].name); - - if (mpm_table[de_ctx->mpm_matcher].ConfigInit) { - de_ctx->mpm_cfg = mpm_table[de_ctx->mpm_matcher].ConfigInit(); - if (de_ctx->mpm_cfg == NULL) { - goto error; - } - } - if (DetectEngineMpmCachingEnabled() && mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet) { - mpm_table[de_ctx->mpm_matcher].ConfigCacheDirSet( - de_ctx->mpm_cfg, DetectEngineMpmCachingGetPath()); - } - + SCLogConfig("pattern matchers: MPM: %s, SPM: %s", mpm_table[de_ctx->mpm_matcher].name, + spm_table[de_ctx->spm_matcher].name); de_ctx->spm_global_thread_ctx = SpmInitGlobalThreadCtx(de_ctx->spm_matcher); if (de_ctx->spm_global_thread_ctx == NULL) { SCLogDebug("Unable to alloc SpmGlobalThreadCtx.");