commit fb2c14b: [Rules] OMOGRAPH_URL: Avoid extra calls for repeated urls

Vsevolod Stakhov vsevolod at highsecure.ru
Tue Jan 29 14:28:04 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-01-29 13:21:20 +0000
URL: https://github.com/rspamd/rspamd/commit/fb2c14b1e1eeb14b1d773b9a00f2ddceb8686327

[Rules] OMOGRAPH_URL: Avoid extra calls for repeated urls

---
 rules/misc.lua | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/rules/misc.lua b/rules/misc.lua
index 05d4af5d5..1cc7bfc22 100644
--- a/rules/misc.lua
+++ b/rules/misc.lua
@@ -373,26 +373,31 @@ rspamd_config.OMOGRAPH_URL = {
       local bad_omographs = 0
       local single_bad_omograps = 0
       local bad_urls = {}
+      local seen = {}
 
       fun.each(function(u)
         if u:is_phished() then
+
           local h1 = u:get_host()
           local h2 = u:get_phished():get_host()
           if h1 and h2 then
-            if util.is_utf_spoofed(h1, h2) then
-              table.insert(bad_urls, string.format('%s->%s', h1, h2))
+            local selt = string.format('%s->%s', h1, h2)
+            if not seen[selt] and util.is_utf_spoofed(h1, h2) then
+              bad_urls[#bad_urls + 1] = selt
               bad_omographs = bad_omographs + 1
             end
+            seen[selt] = true
           end
         end
         if not u:is_html_displayed() then
           local h = u:get_tld()
 
           if h then
-            if util.is_utf_spoofed(h) then
-              table.insert(bad_urls, string.format('%s', h))
+            if not seen[h] and util.is_utf_spoofed(h) then
+              bad_urls[#bad_urls + 1] = h
               single_bad_omograps = single_bad_omograps + 1
             end
+            seen[h] = true
           end
         end
       end, urls)


More information about the Commits mailing list