From 3f8ee2afd3b861486ae6380d80dfd1966c6b61b1 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 18 Nov 2016 11:18:57 +0100 Subject: [PATCH] detect-lua: unify on using 'lua' name vs 'luajit' --- src/detect-lua-extensions.c | 16 +- src/detect-lua.c | 358 ++++++++++++++++++------------------ src/detect.h | 2 +- 3 files changed, 188 insertions(+), 188 deletions(-) diff --git a/src/detect-lua-extensions.c b/src/detect-lua-extensions.c index 7825967f69..06a11569a5 100644 --- a/src/detect-lua-extensions.c +++ b/src/detect-lua-extensions.c @@ -71,7 +71,7 @@ #include "util-lua-smtp.h" #include "util-lua-dnp3.h" -static const char luaext_key_ld[] = "suricata:luajitdata"; +static const char luaext_key_ld[] = "suricata:luadata"; static const char luaext_key_det_ctx[] = "suricata:det_ctx"; static int LuaGetFlowvar(lua_State *luastate) @@ -82,7 +82,7 @@ static int LuaGetFlowvar(lua_State *luastate) FlowVar *fv; DetectLuaData *ld; - /* need luajit data for id -> idx conversion */ + /* need lua data for id -> idx conversion */ lua_pushlightuserdata(luastate, (void *)&luaext_key_ld); lua_gettable(luastate, LUA_REGISTRYINDEX); ld = lua_touserdata(luastate, -1); @@ -145,7 +145,7 @@ int LuaSetFlowvar(lua_State *luastate) DetectEngineThreadCtx *det_ctx; DetectLuaData *ld; - /* need luajit data for id -> idx conversion */ + /* need lua data for id -> idx conversion */ lua_pushlightuserdata(luastate, (void *)&luaext_key_ld); lua_gettable(luastate, LUA_REGISTRYINDEX); ld = lua_touserdata(luastate, -1); @@ -244,7 +244,7 @@ static int LuaGetFlowint(lua_State *luastate) DetectLuaData *ld; uint32_t number; - /* need luajit data for id -> idx conversion */ + /* need lua data for id -> idx conversion */ lua_pushlightuserdata(luastate, (void *)&luaext_key_ld); lua_gettable(luastate, LUA_REGISTRYINDEX); ld = lua_touserdata(luastate, -1); @@ -313,7 +313,7 @@ int LuaSetFlowint(lua_State *luastate) uint32_t number; lua_Number luanumber; - /* need luajit data for id -> idx conversion */ + /* need lua data for id -> idx conversion */ lua_pushlightuserdata(luastate, (void *)&luaext_key_ld); lua_gettable(luastate, LUA_REGISTRYINDEX); ld = lua_touserdata(luastate, -1); @@ -391,7 +391,7 @@ static int LuaIncrFlowint(lua_State *luastate) DetectLuaData *ld; uint32_t number; - /* need luajit data for id -> idx conversion */ + /* need lua data for id -> idx conversion */ lua_pushlightuserdata(luastate, (void *)&luaext_key_ld); lua_gettable(luastate, LUA_REGISTRYINDEX); ld = lua_touserdata(luastate, -1); @@ -460,7 +460,7 @@ static int LuaDecrFlowint(lua_State *luastate) DetectLuaData *ld; uint32_t number; - /* need luajit data for id -> idx conversion */ + /* need lua data for id -> idx conversion */ lua_pushlightuserdata(luastate, (void *)&luaext_key_ld); lua_gettable(luastate, LUA_REGISTRYINDEX); ld = lua_touserdata(luastate, -1); @@ -525,7 +525,7 @@ void LuaExtensionsMatchSetup(lua_State *lua_state, DetectLuaData *ld, DetectEngi { SCLogDebug("det_ctx %p, f %p", det_ctx, f); - /* luajit keyword data */ + /* lua keyword data */ lua_pushlightuserdata(lua_state, (void *)&luaext_key_ld); lua_pushlightuserdata(lua_state, (void *)ld); lua_settable(lua_state, LUA_REGISTRYINDEX); diff --git a/src/detect-lua.c b/src/detect-lua.c index ae0be3f952..b3a8222b1e 100644 --- a/src/detect-lua.c +++ b/src/detect-lua.c @@ -68,7 +68,7 @@ static int DetectLuaSetupNoSupport (DetectEngineCtx *a, Signature *b, char *c) } /** - * \brief Registration function for keyword: luajit + * \brief Registration function for keyword: lua */ void DetectLuaRegister(void) { @@ -100,13 +100,13 @@ static void DetectLuaRegisterTests(void); static void DetectLuaFree(void *); /** - * \brief Registration function for keyword: luajit + * \brief Registration function for keyword: lua */ void DetectLuaRegister(void) { sigmatch_table[DETECT_LUA].name = "lua"; sigmatch_table[DETECT_LUA].alias = "luajit"; - sigmatch_table[DETECT_LUA].desc = "match via a luajit script"; + sigmatch_table[DETECT_LUA].desc = "match via a lua script"; sigmatch_table[DETECT_LUA].url = "https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Lua_scripting"; sigmatch_table[DETECT_LUA].Match = DetectLuaMatch; sigmatch_table[DETECT_LUA].AppLayerMatch = DetectLuaAppMatch; @@ -115,7 +115,7 @@ void DetectLuaRegister(void) sigmatch_table[DETECT_LUA].Free = DetectLuaFree; sigmatch_table[DETECT_LUA].RegisterTests = DetectLuaRegisterTests; - SCLogDebug("registering luajit rule option"); + SCLogDebug("registering lua rule option"); return; } @@ -185,7 +185,8 @@ void LuaDumpStack(lua_State *state) } } -int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx, Signature *s, SigMatch *sm, +int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx, + Signature *s, SigMatch *sm, uint8_t *buffer, uint32_t buffer_len, uint32_t offset, Flow *f) { @@ -195,53 +196,53 @@ int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx, Signature *s, SigMatch if (buffer == NULL || buffer_len == 0) SCReturnInt(0); - DetectLuaData *luajit = (DetectLuaData *)sm->ctx; - if (luajit == NULL) + DetectLuaData *lua = (DetectLuaData *)sm->ctx; + if (lua == NULL) SCReturnInt(0); - DetectLuaThreadData *tluajit = (DetectLuaThreadData *)DetectThreadCtxGetKeywordThreadCtx(det_ctx, luajit->thread_ctx_id); - if (tluajit == NULL) + DetectLuaThreadData *tlua = (DetectLuaThreadData *)DetectThreadCtxGetKeywordThreadCtx(det_ctx, lua->thread_ctx_id); + if (tlua == NULL) SCReturnInt(0); - LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx, + LuaExtensionsMatchSetup(tlua->luastate, lua, det_ctx, f, /* no packet in the ctx */NULL, 0); /* prepare data to pass to script */ - lua_getglobal(tluajit->luastate, "match"); - lua_newtable(tluajit->luastate); /* stack at -1 */ + lua_getglobal(tlua->luastate, "match"); + lua_newtable(tlua->luastate); /* stack at -1 */ - lua_pushliteral (tluajit->luastate, "offset"); /* stack at -2 */ - lua_pushnumber (tluajit->luastate, (int)(offset + 1)); - lua_settable(tluajit->luastate, -3); + lua_pushliteral (tlua->luastate, "offset"); /* stack at -2 */ + lua_pushnumber (tlua->luastate, (int)(offset + 1)); + lua_settable(tlua->luastate, -3); - lua_pushstring (tluajit->luastate, luajit->buffername); /* stack at -2 */ - LuaPushStringBuffer(tluajit->luastate, (const uint8_t *)buffer, (size_t)buffer_len); - lua_settable(tluajit->luastate, -3); + lua_pushstring (tlua->luastate, lua->buffername); /* stack at -2 */ + LuaPushStringBuffer(tlua->luastate, (const uint8_t *)buffer, (size_t)buffer_len); + lua_settable(tlua->luastate, -3); - int retval = lua_pcall(tluajit->luastate, 1, 1, 0); + int retval = lua_pcall(tlua->luastate, 1, 1, 0); if (retval != 0) { - SCLogInfo("failed to run script: %s", lua_tostring(tluajit->luastate, -1)); + SCLogInfo("failed to run script: %s", lua_tostring(tlua->luastate, -1)); } /* process returns from script */ - if (lua_gettop(tluajit->luastate) > 0) { + if (lua_gettop(tlua->luastate) > 0) { /* script returns a number (return 1 or return 0) */ - if (lua_type(tluajit->luastate, 1) == LUA_TNUMBER) { - double script_ret = lua_tonumber(tluajit->luastate, 1); + if (lua_type(tlua->luastate, 1) == LUA_TNUMBER) { + double script_ret = lua_tonumber(tlua->luastate, 1); SCLogDebug("script_ret %f", script_ret); - lua_pop(tluajit->luastate, 1); + lua_pop(tlua->luastate, 1); if (script_ret == 1.0) ret = 1; /* script returns a table */ - } else if (lua_type(tluajit->luastate, 1) == LUA_TTABLE) { - lua_pushnil(tluajit->luastate); + } else if (lua_type(tlua->luastate, 1) == LUA_TTABLE) { + lua_pushnil(tlua->luastate); const char *k, *v; - while (lua_next(tluajit->luastate, -2)) { - v = lua_tostring(tluajit->luastate, -1); - lua_pop(tluajit->luastate, 1); - k = lua_tostring(tluajit->luastate, -1); + while (lua_next(tlua->luastate, -2)) { + v = lua_tostring(tlua->luastate, -1); + lua_pop(tlua->luastate, 1); + k = lua_tostring(tlua->luastate, -1); if (!k || !v) continue; @@ -257,18 +258,18 @@ int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx, Signature *s, SigMatch } /* pop the table */ - lua_pop(tluajit->luastate, 1); + lua_pop(tlua->luastate, 1); } } else { SCLogDebug("no stack"); } /* clear the stack */ - while (lua_gettop(tluajit->luastate) > 0) { - lua_pop(tluajit->luastate, 1); + while (lua_gettop(tlua->luastate) > 0) { + lua_pop(tlua->luastate, 1); } - if (luajit->negated) { + if (lua->negated) { if (ret == 1) ret = 0; else @@ -276,11 +277,10 @@ int DetectLuaMatchBuffer(DetectEngineThreadCtx *det_ctx, Signature *s, SigMatch } SCReturnInt(ret); - } /** - * \brief match the specified luajit + * \brief match the specified lua script * * \param t thread local vars * \param det_ctx pattern matcher thread local data @@ -296,12 +296,12 @@ static int DetectLuaMatch (ThreadVars *tv, DetectEngineThreadCtx *det_ctx, { SCEnter(); int ret = 0; - DetectLuaData *luajit = (DetectLuaData *)ctx; - if (luajit == NULL) + DetectLuaData *lua = (DetectLuaData *)ctx; + if (lua == NULL) SCReturnInt(0); - DetectLuaThreadData *tluajit = (DetectLuaThreadData *)DetectThreadCtxGetKeywordThreadCtx(det_ctx, luajit->thread_ctx_id); - if (tluajit == NULL) + DetectLuaThreadData *tlua = (DetectLuaThreadData *)DetectThreadCtxGetKeywordThreadCtx(det_ctx, lua->thread_ctx_id); + if (tlua == NULL) SCReturnInt(0); /* setup extension data for use in lua c functions */ @@ -311,38 +311,38 @@ static int DetectLuaMatch (ThreadVars *tv, DetectEngineThreadCtx *det_ctx, else if (p->flowflags & FLOW_PKT_TOCLIENT) flags = STREAM_TOCLIENT; - LuaStateSetThreadVars(tluajit->luastate, tv); + LuaStateSetThreadVars(tlua->luastate, tv); - LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx, + LuaExtensionsMatchSetup(tlua->luastate, lua, det_ctx, p->flow, p, flags); - if ((tluajit->flags & DATATYPE_PAYLOAD) && p->payload_len == 0) + if ((tlua->flags & DATATYPE_PAYLOAD) && p->payload_len == 0) SCReturnInt(0); - if ((tluajit->flags & DATATYPE_PACKET) && GET_PKT_LEN(p) == 0) + if ((tlua->flags & DATATYPE_PACKET) && GET_PKT_LEN(p) == 0) SCReturnInt(0); - if (tluajit->alproto != ALPROTO_UNKNOWN) { + if (tlua->alproto != ALPROTO_UNKNOWN) { if (p->flow == NULL) SCReturnInt(0); AppProto alproto = p->flow->alproto; - if (tluajit->alproto != alproto) + if (tlua->alproto != alproto) SCReturnInt(0); } - lua_getglobal(tluajit->luastate, "match"); - lua_newtable(tluajit->luastate); /* stack at -1 */ + lua_getglobal(tlua->luastate, "match"); + lua_newtable(tlua->luastate); /* stack at -1 */ - if ((tluajit->flags & DATATYPE_PAYLOAD) && p->payload_len) { - lua_pushliteral(tluajit->luastate, "payload"); /* stack at -2 */ - LuaPushStringBuffer (tluajit->luastate, (const uint8_t *)p->payload, (size_t)p->payload_len); /* stack at -3 */ - lua_settable(tluajit->luastate, -3); + if ((tlua->flags & DATATYPE_PAYLOAD) && p->payload_len) { + lua_pushliteral(tlua->luastate, "payload"); /* stack at -2 */ + LuaPushStringBuffer (tlua->luastate, (const uint8_t *)p->payload, (size_t)p->payload_len); /* stack at -3 */ + lua_settable(tlua->luastate, -3); } - if ((tluajit->flags & DATATYPE_PACKET) && GET_PKT_LEN(p)) { - lua_pushliteral(tluajit->luastate, "packet"); /* stack at -2 */ - LuaPushStringBuffer (tluajit->luastate, (const uint8_t *)GET_PKT_DATA(p), (size_t)GET_PKT_LEN(p)); /* stack at -3 */ - lua_settable(tluajit->luastate, -3); + if ((tlua->flags & DATATYPE_PACKET) && GET_PKT_LEN(p)) { + lua_pushliteral(tlua->luastate, "packet"); /* stack at -2 */ + LuaPushStringBuffer (tlua->luastate, (const uint8_t *)GET_PKT_DATA(p), (size_t)GET_PKT_LEN(p)); /* stack at -3 */ + lua_settable(tlua->luastate, -3); } - if (tluajit->alproto == ALPROTO_HTTP) { + if (tlua->alproto == ALPROTO_HTTP) { HtpState *htp_state = p->flow->alstate; if (htp_state != NULL && htp_state->connp != NULL) { htp_tx_t *tx = NULL; @@ -354,43 +354,43 @@ static int DetectLuaMatch (ThreadVars *tv, DetectEngineThreadCtx *det_ctx, if (tx == NULL) continue; - if ((tluajit->flags & DATATYPE_HTTP_REQUEST_LINE) && tx->request_line != NULL && + if ((tlua->flags & DATATYPE_HTTP_REQUEST_LINE) && tx->request_line != NULL && bstr_len(tx->request_line) > 0) { - lua_pushliteral(tluajit->luastate, "http.request_line"); /* stack at -2 */ - LuaPushStringBuffer(tluajit->luastate, + lua_pushliteral(tlua->luastate, "http.request_line"); /* stack at -2 */ + LuaPushStringBuffer(tlua->luastate, (const uint8_t *)bstr_ptr(tx->request_line), bstr_len(tx->request_line)); - lua_settable(tluajit->luastate, -3); + lua_settable(tlua->luastate, -3); } } } } - int retval = lua_pcall(tluajit->luastate, 1, 1, 0); + int retval = lua_pcall(tlua->luastate, 1, 1, 0); if (retval != 0) { - SCLogInfo("failed to run script: %s", lua_tostring(tluajit->luastate, -1)); + SCLogInfo("failed to run script: %s", lua_tostring(tlua->luastate, -1)); } /* process returns from script */ - if (lua_gettop(tluajit->luastate) > 0) { + if (lua_gettop(tlua->luastate) > 0) { /* script returns a number (return 1 or return 0) */ - if (lua_type(tluajit->luastate, 1) == LUA_TNUMBER) { - double script_ret = lua_tonumber(tluajit->luastate, 1); + if (lua_type(tlua->luastate, 1) == LUA_TNUMBER) { + double script_ret = lua_tonumber(tlua->luastate, 1); SCLogDebug("script_ret %f", script_ret); - lua_pop(tluajit->luastate, 1); + lua_pop(tlua->luastate, 1); if (script_ret == 1.0) ret = 1; /* script returns a table */ - } else if (lua_type(tluajit->luastate, 1) == LUA_TTABLE) { - lua_pushnil(tluajit->luastate); + } else if (lua_type(tlua->luastate, 1) == LUA_TTABLE) { + lua_pushnil(tlua->luastate); const char *k, *v; - while (lua_next(tluajit->luastate, -2)) { - v = lua_tostring(tluajit->luastate, -1); - lua_pop(tluajit->luastate, 1); - k = lua_tostring(tluajit->luastate, -1); + while (lua_next(tlua->luastate, -2)) { + v = lua_tostring(tlua->luastate, -1); + lua_pop(tlua->luastate, 1); + k = lua_tostring(tlua->luastate, -1); if (!k || !v) continue; @@ -406,14 +406,14 @@ static int DetectLuaMatch (ThreadVars *tv, DetectEngineThreadCtx *det_ctx, } /* pop the table */ - lua_pop(tluajit->luastate, 1); + lua_pop(tlua->luastate, 1); } } - while (lua_gettop(tluajit->luastate) > 0) { - lua_pop(tluajit->luastate, 1); + while (lua_gettop(tlua->luastate) > 0) { + lua_pop(tlua->luastate, 1); } - if (luajit->negated) { + if (lua->negated) { if (ret == 1) ret = 0; else @@ -429,70 +429,70 @@ static int DetectLuaAppMatchCommon (ThreadVars *t, DetectEngineThreadCtx *det_ct { SCEnter(); int ret = 0; - DetectLuaData *luajit = (DetectLuaData *)ctx; - if (luajit == NULL) + DetectLuaData *lua = (DetectLuaData *)ctx; + if (lua == NULL) SCReturnInt(0); - DetectLuaThreadData *tluajit = (DetectLuaThreadData *)DetectThreadCtxGetKeywordThreadCtx(det_ctx, luajit->thread_ctx_id); - if (tluajit == NULL) + DetectLuaThreadData *tlua = (DetectLuaThreadData *)DetectThreadCtxGetKeywordThreadCtx(det_ctx, lua->thread_ctx_id); + if (tlua == NULL) SCReturnInt(0); /* setup extension data for use in lua c functions */ - LuaExtensionsMatchSetup(tluajit->luastate, luajit, det_ctx, + LuaExtensionsMatchSetup(tlua->luastate, lua, det_ctx, f, NULL, flags); - if (tluajit->alproto != ALPROTO_UNKNOWN) { + if (tlua->alproto != ALPROTO_UNKNOWN) { int alproto = f->alproto; - if (tluajit->alproto != alproto) + if (tlua->alproto != alproto) SCReturnInt(0); } - lua_getglobal(tluajit->luastate, "match"); - lua_newtable(tluajit->luastate); /* stack at -1 */ + lua_getglobal(tlua->luastate, "match"); + lua_newtable(tlua->luastate); /* stack at -1 */ - if (tluajit->alproto == ALPROTO_HTTP) { + if (tlua->alproto == ALPROTO_HTTP) { HtpState *htp_state = state; if (htp_state != NULL && htp_state->connp != NULL) { htp_tx_t *tx = NULL; tx = AppLayerParserGetTx(IPPROTO_TCP, ALPROTO_HTTP, htp_state, det_ctx->tx_id); if (tx != NULL) { - if ((tluajit->flags & DATATYPE_HTTP_REQUEST_LINE) && tx->request_line != NULL && + if ((tlua->flags & DATATYPE_HTTP_REQUEST_LINE) && tx->request_line != NULL && bstr_len(tx->request_line) > 0) { - lua_pushliteral(tluajit->luastate, "http.request_line"); /* stack at -2 */ - LuaPushStringBuffer(tluajit->luastate, + lua_pushliteral(tlua->luastate, "http.request_line"); /* stack at -2 */ + LuaPushStringBuffer(tlua->luastate, (const uint8_t *)bstr_ptr(tx->request_line), bstr_len(tx->request_line)); - lua_settable(tluajit->luastate, -3); + lua_settable(tlua->luastate, -3); } } } } - int retval = lua_pcall(tluajit->luastate, 1, 1, 0); + int retval = lua_pcall(tlua->luastate, 1, 1, 0); if (retval != 0) { - SCLogInfo("failed to run script: %s", lua_tostring(tluajit->luastate, -1)); + SCLogInfo("failed to run script: %s", lua_tostring(tlua->luastate, -1)); } /* process returns from script */ - if (lua_gettop(tluajit->luastate) > 0) { + if (lua_gettop(tlua->luastate) > 0) { /* script returns a number (return 1 or return 0) */ - if (lua_type(tluajit->luastate, 1) == LUA_TNUMBER) { - double script_ret = lua_tonumber(tluajit->luastate, 1); + if (lua_type(tlua->luastate, 1) == LUA_TNUMBER) { + double script_ret = lua_tonumber(tlua->luastate, 1); SCLogDebug("script_ret %f", script_ret); - lua_pop(tluajit->luastate, 1); + lua_pop(tlua->luastate, 1); if (script_ret == 1.0) ret = 1; /* script returns a table */ - } else if (lua_type(tluajit->luastate, 1) == LUA_TTABLE) { - lua_pushnil(tluajit->luastate); + } else if (lua_type(tlua->luastate, 1) == LUA_TTABLE) { + lua_pushnil(tlua->luastate); const char *k, *v; - while (lua_next(tluajit->luastate, -2)) { - v = lua_tostring(tluajit->luastate, -1); - lua_pop(tluajit->luastate, 1); - k = lua_tostring(tluajit->luastate, -1); + while (lua_next(tlua->luastate, -2)) { + v = lua_tostring(tlua->luastate, -1); + lua_pop(tlua->luastate, 1); + k = lua_tostring(tlua->luastate, -1); if (!k || !v) continue; @@ -508,14 +508,14 @@ static int DetectLuaAppMatchCommon (ThreadVars *t, DetectEngineThreadCtx *det_ct } /* pop the table */ - lua_pop(tluajit->luastate, 1); + lua_pop(tlua->luastate, 1); } } - while (lua_gettop(tluajit->luastate) > 0) { - lua_pop(tluajit->luastate, 1); + while (lua_gettop(tlua->luastate) > 0) { + lua_pop(tlua->luastate, 1); } - if (luajit->negated) { + if (lua->negated) { if (ret == 1) ret = 0; else @@ -562,7 +562,7 @@ static int DetectLuaAppTxMatch (ThreadVars *t, DetectEngineThreadCtx *det_ctx, } #ifdef UNITTESTS -/* if this ptr is set the luajit setup functions will use this buffer as the +/* if this ptr is set the lua setup functions will use this buffer as the * lua script instead of calling luaL_loadfile on the filename supplied. */ static const char *ut_script = NULL; #endif @@ -570,8 +570,8 @@ static const char *ut_script = NULL; static void *DetectLuaThreadInit(void *data) { int status; - DetectLuaData *luajit = (DetectLuaData *)data; - BUG_ON(luajit == NULL); + DetectLuaData *lua = (DetectLuaData *)data; + BUG_ON(lua == NULL); DetectLuaThreadData *t = SCMalloc(sizeof(DetectLuaThreadData)); if (unlikely(t == NULL)) { @@ -580,8 +580,8 @@ static void *DetectLuaThreadInit(void *data) } memset(t, 0x00, sizeof(DetectLuaThreadData)); - t->alproto = luajit->alproto; - t->flags = luajit->flags; + t->alproto = lua->alproto; + t->flags = lua->flags; t->luastate = LuaGetState(); if (t->luastate == NULL) { @@ -593,11 +593,11 @@ static void *DetectLuaThreadInit(void *data) LuaRegisterExtensions(t->luastate); - lua_pushinteger(t->luastate, (lua_Integer)(luajit->sid)); + lua_pushinteger(t->luastate, (lua_Integer)(lua->sid)); lua_setglobal(t->luastate, "SCRuleSid"); - lua_pushinteger(t->luastate, (lua_Integer)(luajit->rev)); + lua_pushinteger(t->luastate, (lua_Integer)(lua->rev)); lua_setglobal(t->luastate, "SCRuleRev"); - lua_pushinteger(t->luastate, (lua_Integer)(luajit->gid)); + lua_pushinteger(t->luastate, (lua_Integer)(lua->gid)); lua_setglobal(t->luastate, "SCRuleGid"); /* hackish, needed to allow unittests to pass buffers as scripts instead of files */ @@ -610,7 +610,7 @@ static void *DetectLuaThreadInit(void *data) } } else { #endif - status = luaL_loadfile(t->luastate, luajit->filename); + status = luaL_loadfile(t->luastate, lua->filename); if (status) { SCLogError(SC_ERR_LUA_ERROR, "couldn't load file: %s", lua_tostring(t->luastate, -1)); goto error; @@ -645,40 +645,40 @@ static void DetectLuaThreadFree(void *ctx) } /** - * \brief Parse the luajit keyword + * \brief Parse the lua keyword * * \param str Pointer to the user provided option * - * \retval luajit pointer to DetectLuaData on success + * \retval lua pointer to DetectLuaData on success * \retval NULL on failure */ static DetectLuaData *DetectLuaParse (const DetectEngineCtx *de_ctx, char *str) { - DetectLuaData *luajit = NULL; + DetectLuaData *lua = NULL; - /* We have a correct luajit option */ - luajit = SCMalloc(sizeof(DetectLuaData)); - if (unlikely(luajit == NULL)) + /* We have a correct lua option */ + lua = SCMalloc(sizeof(DetectLuaData)); + if (unlikely(lua == NULL)) goto error; - memset(luajit, 0x00, sizeof(DetectLuaData)); + memset(lua, 0x00, sizeof(DetectLuaData)); if (strlen(str) && str[0] == '!') { - luajit->negated = 1; + lua->negated = 1; str++; } /* get full filename */ - luajit->filename = DetectLoadCompleteSigPath(de_ctx, str); - if (luajit->filename == NULL) { + lua->filename = DetectLoadCompleteSigPath(de_ctx, str); + if (lua->filename == NULL) { goto error; } - return luajit; + return lua; error: - if (luajit != NULL) - DetectLuaFree(luajit); + if (lua != NULL) + DetectLuaFree(lua); return NULL; } @@ -939,40 +939,40 @@ error: } /** - * \brief this function is used to parse luajit options + * \brief this function is used to parse lua options * \brief into the current signature * * \param de_ctx pointer to the Detection Engine Context * \param s pointer to the Current Signature - * \param str pointer to the user provided "luajit" option + * \param str pointer to the user provided "lua" option * * \retval 0 on Success * \retval -1 on Failure */ static int DetectLuaSetup (DetectEngineCtx *de_ctx, Signature *s, char *str) { - DetectLuaData *luajit = NULL; + DetectLuaData *lua = NULL; SigMatch *sm = NULL; - luajit = DetectLuaParse(de_ctx, str); - if (luajit == NULL) + lua = DetectLuaParse(de_ctx, str); + if (lua == NULL) goto error; - if (DetectLuaSetupPrime(de_ctx, luajit) == -1) { + if (DetectLuaSetupPrime(de_ctx, lua) == -1) { goto error; } - luajit->thread_ctx_id = DetectRegisterThreadCtxFuncs(de_ctx, "luajit", - DetectLuaThreadInit, (void *)luajit, + lua->thread_ctx_id = DetectRegisterThreadCtxFuncs(de_ctx, "lua", + DetectLuaThreadInit, (void *)lua, DetectLuaThreadFree, 0); - if (luajit->thread_ctx_id == -1) + if (lua->thread_ctx_id == -1) goto error; - if (luajit->alproto != ALPROTO_UNKNOWN) { - if (s->alproto != ALPROTO_UNKNOWN && luajit->alproto != s->alproto) { + if (lua->alproto != ALPROTO_UNKNOWN) { + if (s->alproto != ALPROTO_UNKNOWN && lua->alproto != s->alproto) { goto error; } - s->alproto = luajit->alproto; + s->alproto = lua->alproto; } /* Okay so far so good, lets get this into a SigMatch @@ -982,61 +982,61 @@ static int DetectLuaSetup (DetectEngineCtx *de_ctx, Signature *s, char *str) goto error; sm->type = DETECT_LUA; - sm->ctx = (SigMatchCtx *)luajit; + sm->ctx = (SigMatchCtx *)lua; - if (luajit->alproto == ALPROTO_UNKNOWN) { - if (luajit->flags & DATATYPE_STREAM) + if (lua->alproto == ALPROTO_UNKNOWN) { + if (lua->flags & DATATYPE_STREAM) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_PMATCH); else SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_MATCH); - } else if (luajit->alproto == ALPROTO_HTTP) { - if (luajit->flags & DATATYPE_HTTP_RESPONSE_BODY) + } else if (lua->alproto == ALPROTO_HTTP) { + if (lua->flags & DATATYPE_HTTP_RESPONSE_BODY) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_FILEDATA); - else if (luajit->flags & DATATYPE_HTTP_REQUEST_BODY) + else if (lua->flags & DATATYPE_HTTP_REQUEST_BODY) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HCBDMATCH); - else if (luajit->flags & DATATYPE_HTTP_URI) + else if (lua->flags & DATATYPE_HTTP_URI) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_UMATCH); - else if (luajit->flags & DATATYPE_HTTP_URI_RAW) + else if (lua->flags & DATATYPE_HTTP_URI_RAW) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HRUDMATCH); - else if (luajit->flags & DATATYPE_HTTP_REQUEST_COOKIE) + else if (lua->flags & DATATYPE_HTTP_REQUEST_COOKIE) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HCDMATCH); - else if (luajit->flags & DATATYPE_HTTP_REQUEST_UA) + else if (lua->flags & DATATYPE_HTTP_REQUEST_UA) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HUADMATCH); - else if (luajit->flags & (DATATYPE_HTTP_REQUEST_HEADERS|DATATYPE_HTTP_RESPONSE_HEADERS)) + else if (lua->flags & (DATATYPE_HTTP_REQUEST_HEADERS|DATATYPE_HTTP_RESPONSE_HEADERS)) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HHDMATCH); - else if (luajit->flags & (DATATYPE_HTTP_REQUEST_HEADERS_RAW|DATATYPE_HTTP_RESPONSE_HEADERS_RAW)) + else if (lua->flags & (DATATYPE_HTTP_REQUEST_HEADERS_RAW|DATATYPE_HTTP_RESPONSE_HEADERS_RAW)) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HRHDMATCH); - else if (luajit->flags & DATATYPE_HTTP_RESPONSE_COOKIE) + else if (lua->flags & DATATYPE_HTTP_RESPONSE_COOKIE) SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HCDMATCH); else SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_HTTP_REQLINEMATCH); - } else if (luajit->alproto == ALPROTO_DNS) { - if (luajit->flags & DATATYPE_DNS_RRNAME) { + } else if (lua->alproto == ALPROTO_DNS) { + if (lua->flags & DATATYPE_DNS_RRNAME) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_DNSQUERYNAME_MATCH); - } else if (luajit->flags & DATATYPE_DNS_REQUEST) { + } else if (lua->flags & DATATYPE_DNS_REQUEST) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_DNSREQUEST_MATCH); - } else if (luajit->flags & DATATYPE_DNS_RESPONSE) { + } else if (lua->flags & DATATYPE_DNS_RESPONSE) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_DNSRESPONSE_MATCH); } - } else if (luajit->alproto == ALPROTO_TLS) { + } else if (lua->alproto == ALPROTO_TLS) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH); - } else if (luajit->alproto == ALPROTO_SSH) { + } else if (lua->alproto == ALPROTO_SSH) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH); - } else if (luajit->alproto == ALPROTO_SMTP) { + } else if (lua->alproto == ALPROTO_SMTP) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH); - } else if (luajit->alproto == ALPROTO_DNP3) { + } else if (lua->alproto == ALPROTO_DNP3) { SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_DNP3_MATCH); } else { - SCLogError(SC_ERR_LUA_ERROR, "luajit can't be used with protocol %s", - AppLayerGetProtoName(luajit->alproto)); + SCLogError(SC_ERR_LUA_ERROR, "lua can't be used with protocol %s", + AppLayerGetProtoName(lua->alproto)); goto error; } return 0; error: - if (luajit != NULL) - DetectLuaFree(luajit); + if (lua != NULL) + DetectLuaFree(lua); if (sm != NULL) SCFree(sm); return -1; @@ -1066,19 +1066,19 @@ void DetectLuaPostSetup(Signature *s) /** * \brief this function will free memory associated with DetectLuaData * - * \param luajit pointer to DetectLuaData + * \param ptr pointer to DetectLuaData */ static void DetectLuaFree(void *ptr) { if (ptr != NULL) { - DetectLuaData *luajit = (DetectLuaData *)ptr; + DetectLuaData *lua = (DetectLuaData *)ptr; - if (luajit->buffername) - SCFree(luajit->buffername); - if (luajit->filename) - SCFree(luajit->filename); + if (lua->buffername) + SCFree(lua->buffername); + if (lua->filename) + SCFree(lua->filename); - SCFree(luajit); + SCFree(lua); } } @@ -1114,7 +1114,7 @@ static int LuaMatchTest01(void) " return 0\n" "end\n" "return 0\n"; - char sig[] = "alert http any any -> any any (flow:to_server; luajit:unittest; sid:1;)"; + char sig[] = "alert http any any -> any any (flow:to_server; lua:unittest; sid:1;)"; int result = 0; uint8_t httpbuf1[] = "POST / HTTP/1.1\r\n" @@ -1280,7 +1280,7 @@ static int LuaMatchTest02(void) " return 0\n" "end\n" "return 0\n"; - char sig[] = "alert tcp any any -> any any (flow:to_server; luajit:unittest; sid:1;)"; + char sig[] = "alert tcp any any -> any any (flow:to_server; lua:unittest; sid:1;)"; int result = 0; uint8_t httpbuf1[] = "POST / HTTP/1.1\r\n" @@ -1416,7 +1416,7 @@ static int LuaMatchTest03(void) " return 0\n" "end\n" "return 0\n"; - char sig[] = "alert tcp any any -> any any (flow:to_server; luajit:unittest; sid:1;)"; + char sig[] = "alert tcp any any -> any any (flow:to_server; lua:unittest; sid:1;)"; int result = 0; uint8_t httpbuf1[] = "POST / HTTP/1.1\r\n" @@ -1549,7 +1549,7 @@ static int LuaMatchTest04(void) " return 0\n" "end\n" "return 0\n"; - char sig[] = "alert http any any -> any any (flow:to_server; luajit:unittest; sid:1;)"; + char sig[] = "alert http any any -> any any (flow:to_server; lua:unittest; sid:1;)"; int result = 0; uint8_t httpbuf1[] = "POST / HTTP/1.1\r\n" @@ -1699,7 +1699,7 @@ static int LuaMatchTest05(void) " return 0\n" "end\n" "return 0\n"; - char sig[] = "alert http any any -> any any (flow:to_server; luajit:unittest; sid:1;)"; + char sig[] = "alert http any any -> any any (flow:to_server; lua:unittest; sid:1;)"; int result = 0; uint8_t httpbuf1[] = "POST / HTTP/1.1\r\n" @@ -1854,7 +1854,7 @@ static int LuaMatchTest06(void) " return 0\n" "end\n" "return 0\n"; - char sig[] = "alert http any any -> any any (flow:to_server; luajit:unittest; sid:1;)"; + char sig[] = "alert http any any -> any any (flow:to_server; lua:unittest; sid:1;)"; int result = 0; uint8_t httpbuf1[] = "POST / HTTP/1.1\r\n" diff --git a/src/detect.h b/src/detect.h index 4277115b5b..e3f4790630 100644 --- a/src/detect.h +++ b/src/detect.h @@ -529,7 +529,7 @@ typedef struct DetectReplaceList_ { /** only execute flowvar storage if rule matched */ #define DETECT_FLOWVAR_TYPE_POSTMATCH 1 -/** execute flowvar storage even if rule doesn't match (for luajit) */ +/** execute flowvar storage even if rule doesn't match (for lua) */ #define DETECT_FLOWVAR_TYPE_ALWAYS 2 /** list for flowvar store candidates, to be stored from