det_ctx->counter_match_list = StatsRegisterAvgCounter("detect.match_list", tv);
#endif
- /* pass thread data back to caller */
- *data = (void *)det_ctx;
-
if (DetectEngineMultiTenantEnabled()) {
- if (DetectEngineThreadCtxInitForMT(tv, det_ctx) != TM_ECODE_OK)
+ if (DetectEngineThreadCtxInitForMT(tv, det_ctx) != TM_ECODE_OK) {
+ DetectEngineThreadCtxDeinit(tv, det_ctx);
return TM_ECODE_FAILED;
+ }
}
+ /* pass thread data back to caller */
+ *data = (void *)det_ctx;
+
return TM_ECODE_OK;
}