]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Fix merge table utility
authorVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 7 Aug 2023 13:42:30 +0000 (14:42 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 7 Aug 2023 13:42:30 +0000 (14:42 +0100)
lualib/lua_util.lua

index a68da0d5995fb569c0e97aaa8ef1545da267dcd1..6964b0f0035a961a542ed8795d2de2ee6b9e6b55 100644 (file)
@@ -627,10 +627,23 @@ exports.table_cmp = table_cmp
 -- Merge two tables
 --]]
 local function table_merge(t1, t2)
+  local res = {}
+  local nidx = 1 -- for numeric indicies
+  local it_func = function(k, v)
+    if type(k) == 'number' then
+      res[nidx] = v
+      nidx = nidx + 1
+    else
+      res[k] = v
+    end
+  end
+  for k, v in pairs(t1) do
+    it_func(k, v)
+  end
   for k, v in pairs(t2) do
-    t1[k] = v
+    it_func(k, v)
   end
-  return t1
+  return res
 end
 
 exports.table_merge = table_merge