diff --git a/utils/collectd/patches/930-fix-lua-callback-registration.patch b/utils/collectd/patches/930-fix-lua-callback-registration.patch new file mode 100644 index 000000000..bffe656e0 --- /dev/null +++ b/utils/collectd/patches/930-fix-lua-callback-registration.patch @@ -0,0 +1,42 @@ +--- a/src/lua.c ++++ b/src/lua.c +@@ -281,9 +281,6 @@ static int lua_cb_register_read(lua_Stat + + luaL_checktype(L, 1, LUA_TFUNCTION); + +- char function_name[DATA_MAX_NAME_LEN]; +- snprintf(function_name, sizeof(function_name), "lua/%s", lua_tostring(L, 1)); +- + int callback_id = clua_store_callback(L, 1); + if (callback_id < 0) + return luaL_error(L, "%s", "Storing callback function failed"); +@@ -298,6 +295,9 @@ static int lua_cb_register_read(lua_Stat + if (cb == NULL) + return luaL_error(L, "%s", "calloc failed"); + ++ char function_name[DATA_MAX_NAME_LEN]; ++ snprintf(function_name, sizeof(function_name), "lua/%p", thread); ++ + cb->lua_state = thread; + cb->callback_id = callback_id; + cb->lua_function_name = strdup(function_name); +@@ -325,9 +325,6 @@ static int lua_cb_register_write(lua_Sta + + luaL_checktype(L, 1, LUA_TFUNCTION); + +- char function_name[DATA_MAX_NAME_LEN] = ""; +- snprintf(function_name, sizeof(function_name), "lua/%s", lua_tostring(L, 1)); +- + int callback_id = clua_store_callback(L, 1); + if (callback_id < 0) + return luaL_error(L, "%s", "Storing callback function failed"); +@@ -342,6 +339,9 @@ static int lua_cb_register_write(lua_Sta + if (cb == NULL) + return luaL_error(L, "%s", "calloc failed"); + ++ char function_name[DATA_MAX_NAME_LEN] = ""; ++ snprintf(function_name, sizeof(function_name), "lua/%p", thread); ++ + cb->lua_state = thread; + cb->callback_id = callback_id; + cb->lua_function_name = strdup(function_name);