From f2a185c18aaba7f58bba54bd1e2481871580c792 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 30 Oct 2018 15:26:49 +0000 Subject: [PATCH] [Minor] Do not parse raw regexp for explicitly utf expressions --- src/libutil/regexp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libutil/regexp.c b/src/libutil/regexp.c index c8f4faa4d3..f0f16f4233 100644 --- a/src/libutil/regexp.c +++ b/src/libutil/regexp.c @@ -297,6 +297,7 @@ rspamd_regexp_new (const gchar *pattern, const gchar *flags, const gchar *start = pattern, *end, *flags_str = NULL; gchar *err_str; rspamd_regexp_t *res; + gboolean explicit_utf = FALSE; PCRE_T *r; gchar sep = 0, *real_pattern; #ifndef WITH_PCRE2 @@ -383,6 +384,7 @@ rspamd_regexp_new (const gchar *pattern, const gchar *flags, #else regexp_flags |= PCRE_FLAG(UTF); #endif + explicit_utf = TRUE; break; case 'O': /* We optimize all regexps by default */ @@ -453,7 +455,7 @@ fin: if (rspamd_flags & RSPAMD_REGEXP_FLAG_RAW) { res->raw_re = r; } - else { + else if (!explicit_utf) { #ifndef WITH_PCRE2 res->raw_re = pcre_compile (real_pattern, regexp_flags & ~PCRE_FLAG(UTF8), (const char **)&err_str, &err_off, NULL); -- 2.47.3