From bfa884c956d9afdc5362b69b4c87ca580c43fddf Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Mon, 30 Jul 2018 17:04:57 +0200 Subject: [PATCH] detect: avoid potential use-after-free in error path --- src/detect-engine.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/detect-engine.c b/src/detect-engine.c index 9fe7de6416..c5fa7e5e3f 100644 --- a/src/detect-engine.c +++ b/src/detect-engine.c @@ -2322,14 +2322,16 @@ TmEcode DetectEngineThreadCtxInit(ThreadVars *tv, void *initdata, void **data) 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; }