]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
lua: remove luajit pushlstring workaround 14257/head
authorVictor Julien <vjulien@oisf.net>
Fri, 31 Oct 2025 08:38:55 +0000 (09:38 +0100)
committerVictor Julien <vjulien@oisf.net>
Mon, 3 Nov 2025 07:32:38 +0000 (07:32 +0000)
81ee6f5aadeb ("lua: push correct length back through ScFlowvarGet, work around valgrind warning")
added a workaround for valgrind warnings in pushing a string buffer
into the lua state. This is no longer needed as tested with both
address sanitizer and valgrind.

(cherry picked from commit 52fd61dffdfa50c9a2d4ec24865a54da0b8f0a2a)

src/util-lua.c

index d5ddc885b521d0054ee4deaa03efc9728248d8cb..86d44f1d25263659a4c54d344054d7fdaf0f22c4 100644 (file)
@@ -318,22 +318,7 @@ void LuaPrintStack(lua_State *state) {
 
 int LuaPushStringBuffer(lua_State *luastate, const uint8_t *input, size_t input_len)
 {
-    if (input_len % 4 != 0) {
-        /* we're using a buffer sized at a multiple of 4 as lua_pushlstring generates
-         * invalid read errors in valgrind otherwise. Adding in a nul to be sure.
-         *
-         * Buffer size = len + 1 (for nul) + whatever makes it a multiple of 4 */
-        size_t buflen = input_len + 1 + ((input_len + 1) % 4);
-        uint8_t buf[buflen];
-        memset(buf, 0x00, buflen);
-        memcpy(buf, input, input_len);
-        buf[input_len] = '\0';
-
-        /* return value through luastate, as a luastring */
-        lua_pushlstring(luastate, (char *)buf, input_len);
-    } else {
-        lua_pushlstring(luastate, (char *)input, input_len);
-    }
+    lua_pushlstring(luastate, (char *)input, input_len);
     return 1;
 }