]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Propagate pcre_only flag
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 23 Nov 2020 11:00:16 +0000 (11:00 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 23 Nov 2020 11:00:16 +0000 (11:00 +0000)
src/lua/lua_config.c

index c59850c9d17bcfd6e4ce1d93f63e9039538794fe..f3dc414db3522d0c1a006a686cd01e0cd89bf571 100644 (file)
@@ -2990,7 +2990,6 @@ lua_config_register_regexp (lua_State *L)
        GError *err = NULL;
        enum rspamd_re_type type = RSPAMD_RE_BODY;
        gboolean pcre_only = FALSE;
-       guint old_flags;
 
        /*
         * - `re`* : regular expression object
@@ -3027,9 +3026,8 @@ lua_config_register_regexp (lua_State *L)
                        }
                        else {
                                if (pcre_only) {
-                                       old_flags = rspamd_regexp_get_flags (re->re);
-                                       old_flags |= RSPAMD_REGEXP_FLAG_PCRE_ONLY;
-                                       rspamd_regexp_set_flags (re->re, old_flags);
+                                       rspamd_regexp_set_flags (re->re,
+                                                       rspamd_regexp_get_flags (re->re) | RSPAMD_REGEXP_FLAG_PCRE_ONLY);
                                }
 
                                if (header_str != NULL) {
@@ -3055,6 +3053,11 @@ lua_config_register_regexp (lua_State *L)
                                if (cache_re != re->re) {
                                        rspamd_regexp_unref (re->re);
                                        re->re = rspamd_regexp_ref (cache_re);
+
+                                       if (pcre_only) {
+                                               rspamd_regexp_set_flags (re->re,
+                                                               rspamd_regexp_get_flags (re->re) | RSPAMD_REGEXP_FLAG_PCRE_ONLY);
+                                       }
                                }
                        }
                }