From: Vsevolod Stakhov Date: Tue, 25 Feb 2020 17:01:00 +0000 (+0000) Subject: [Fix] Fix tld compositon rules X-Git-Tag: 2.4~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=4184776a1744bfa1e73eac80e8126573d8aae0f0;p=rspamd.git [Fix] Fix tld compositon rules Issue: #3248, #3268 --- diff --git a/src/libserver/url.c b/src/libserver/url.c index dcf13cfda..0407490d8 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -442,7 +442,6 @@ rspamd_url_parse_tld_file (const gchar *fname, flags = URL_FLAG_NOHTML | URL_FLAG_TLD_MATCH; -#ifndef WITH_HYPERSCAN if (linebuf[0] == '*') { flags |= URL_FLAG_STAR_MATCH; p = strchr (linebuf, '.'); @@ -456,9 +455,6 @@ rspamd_url_parse_tld_file (const gchar *fname, else { p = linebuf; } -#else - p = linebuf; -#endif m.flags = flags; rspamd_multipattern_add_pattern (url_scanner->search_trie, p, @@ -1553,6 +1549,9 @@ rspamd_tld_trie_callback (struct rspamd_multipattern *mp, ndots--; pos = p + 1; } + else { + pos = p; + } p--; } diff --git a/src/libutil/multipattern.c b/src/libutil/multipattern.c index 6eec009b3..f243c1d8a 100644 --- a/src/libutil/multipattern.c +++ b/src/libutil/multipattern.c @@ -108,7 +108,6 @@ rspamd_multipattern_escape_tld_hyperscan (const gchar *pattern, gsize slen, */ if (pattern[0] == '*') { - len = slen + 4; p = strchr (pattern, '.'); if (p == NULL) { @@ -119,12 +118,13 @@ rspamd_multipattern_escape_tld_hyperscan (const gchar *pattern, gsize slen, p ++; } - prefix = ".*."; + prefix = "\\."; + len = slen + strlen (prefix); } else { - len = slen + 1; - prefix = "."; + prefix = "\\."; p = pattern; + len = slen + strlen (prefix); } res = g_malloc (len + 1); @@ -208,7 +208,7 @@ rspamd_multipattern_pattern_filter (const gchar *pattern, gsize len, tmp = rspamd_multipattern_escape_tld_hyperscan (pattern, len, &tlen); ret = rspamd_str_regexp_escape (tmp, tlen, dst_len, - gl_flags|RSPAMD_REGEXP_ESCAPE_GLOB); + gl_flags|RSPAMD_REGEXP_ESCAPE_RE); g_free (tmp); } else if (flags & RSPAMD_MULTIPATTERN_RE) {