]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Rspamadm fix use after free
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 19 Jan 2021 17:10:58 +0000 (17:10 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 19 Jan 2021 17:11:26 +0000 (17:11 +0000)
lualib/rspamadm/mime.lua

index 6294f373fdae26be10345f61fb8bb928c59d961d..8bd2478c8a44a8a2ff2b9d4d674ee9c934347c7c 100644 (file)
@@ -266,6 +266,7 @@ end
 
 local function extract_handler(opts)
   local out_elts = {}
+  local tasks = {}
   local process_func
 
   if opts.words then
@@ -415,11 +416,12 @@ local function extract_handler(opts)
     end
 
     table.insert(out_elts[fname], "")
-
-    task:destroy() -- No automatic dtor
+    table.insert(tasks, task)
   end
 
   print_elts(out_elts, opts, process_func)
+  -- To avoid use after free we postpone tasks destruction
+  for _,task in ipairs(tasks) do task:destroy() end
 end
 
 local function stat_handler(opts)