From: Vsevolod Stakhov Date: Mon, 21 Oct 2019 13:44:07 +0000 (+0100) Subject: [Minor] Fix utf8 regexps escaping X-Git-Tag: 2.1~56 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d22abb557ecda41ab076b4c777dfd4c95340fbfd;p=rspamd.git [Minor] Fix utf8 regexps escaping --- diff --git a/src/libutil/str_util.c b/src/libutil/str_util.c index f5cd8be1a..f325b35f6 100644 --- a/src/libutil/str_util.c +++ b/src/libutil/str_util.c @@ -2725,7 +2725,7 @@ rspamd_str_regexp_escape (const gchar *pattern, gsize slen, gsize len; static const gchar hexdigests[16] = "0123456789abcdef"; - len = slen; + len = 0; p = pattern; /* [-[\]{}()*+?.,\\^$|#\s] need to be escaped */ @@ -2781,13 +2781,10 @@ rspamd_str_regexp_escape (const gchar *pattern, gsize slen, } } - if (slen == len) { - if (dst_len) { - - if (tmp_utf) { - slen = strlen (tmp_utf); - } + if (len == 0) { + /* No need to escape anything */ + if (dst_len) { *dst_len = slen; } @@ -2799,10 +2796,12 @@ rspamd_str_regexp_escape (const gchar *pattern, gsize slen, } } + /* Escape logic */ if (tmp_utf) { pattern = tmp_utf; } + len = slen + len; res = g_malloc (len + 1); p = pattern; d = res;