From: Jeff Lucovsky Date: Fri, 24 Apr 2020 12:56:33 +0000 (-0400) Subject: detect/lua: Unregister Lua object on free X-Git-Tag: suricata-5.0.3~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e718ec674f3e113e627d44bfa547474d90d01d8e;p=thirdparty%2Fsuricata.git detect/lua: Unregister Lua object on free This commit ensures that the LUA object is unregistered when the Lua object is freed. --- diff --git a/src/detect-lua.c b/src/detect-lua.c index 7f75b6642b..a43ba4ad73 100644 --- a/src/detect-lua.c +++ b/src/detect-lua.c @@ -687,6 +687,7 @@ static DetectLuaData *DetectLuaParse (const DetectEngineCtx *de_ctx, const char goto error; } + lua->de_ctx = de_ctx; return lua; error: @@ -1119,6 +1120,10 @@ static void DetectLuaFree(void *ptr) if (lua->filename) SCFree(lua->filename); + if (lua->de_ctx) { + DetectUnregisterThreadCtxFuncs((DetectEngineCtx *)lua->de_ctx, NULL, lua, "lua"); + } + SCFree(lua); } } diff --git a/src/detect-lua.h b/src/detect-lua.h index 6a2ce77bea..1e0422cf13 100644 --- a/src/detect-lua.h +++ b/src/detect-lua.h @@ -49,6 +49,8 @@ typedef struct DetectLuaData { uint32_t sid; uint32_t rev; uint32_t gid; + + const DetectEngineCtx *de_ctx; } DetectLuaData; #endif /* HAVE_LUA */