]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Remove check for a score with no symbol being registered
authorVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 8 Jul 2022 21:08:32 +0000 (22:08 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 8 Jul 2022 21:08:32 +0000 (22:08 +0100)
This check is redundant and has proven to confuse users who want to disable some rules.
Indeed, if we are looking for a way to hint a user that the registered symbol `example`
does not match with the scored symbol `exmaple` (e.g. incorrect spelling), then this
error will be detected when we match symcache entries and the scores. The opposite check
is useless to prevent such an error. And since it is much harder to define a dangling score
with no real symbol, we can just ignore this possibility in general, since the FP for this check,
specifically when some rule got intentionally disabled but a score is not removed just annoys
users for no good reason.

src/libserver/symcache/symcache_impl.cxx

index 7a6878faa901a4a71e16992c55e569ca87567728..77f7ea19ff7e029e850642ebb52f75eb19a7cd4e 100644 (file)
@@ -815,13 +815,10 @@ auto symcache::validate(bool strict) -> bool
 
                if (!ignore_symbol) {
                        if (!items_by_symbol.contains((const char *) k)) {
-                               msg_warn_cache (
+                               msg_debug_cache (
                                                "symbol '%s' has its score defined but there is no "
                                                "corresponding rule registered",
                                                k);
-                               if (strict) {
-                                       ret = FALSE;
-                               }
                        }
                }
                else if (sym_def->flags & RSPAMD_SYMBOL_FLAG_DISABLED) {