]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Fix dependencies propagation
authorVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 3 May 2022 19:33:56 +0000 (20:33 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 3 May 2022 19:33:56 +0000 (20:33 +0100)
src/libserver/symcache/symcache_impl.cxx
src/libserver/symcache/symcache_item.cxx
src/libserver/symcache/symcache_item.hxx

index 6b1802d964c5fdb7f1d8c744e08c363880307b23..ab1b41fc425059e49a59526fcc3ee6e4b776a49b 100644 (file)
@@ -732,7 +732,7 @@ auto symcache::validate(bool strict) -> bool
                        }
                }
                else {
-                       skipped = FALSE;
+                       skipped = false;
                }
 
                if (!ghost && skipped) {
index c5751ac355af2991430551316161b0f73bc463ca..f78605b13ff2dedc6035f16c1435e749535ea0aa 100644 (file)
@@ -136,10 +136,17 @@ auto cache_item::process_deps(const symcache &cache) -> void
                                                        dep.item = dit->getptr();
                                                        dep.id = dit->id;
 
-                                                       msg_debug_cache ("added reverse dependency from %d on %d", id,
+                                                       msg_debug_cache ("added reverse dependency from %d on %d", parent->id,
                                                                        dit->id);
                                                }
                                        }
+                                       else {
+                                               dep.item = dit->getptr();
+                                               dep.id = dit->id;
+                                               dit->rdeps.emplace_back(getptr(), dep.sym, id, -1);
+                                               msg_debug_cache ("added reverse dependency from %d on %d", id,
+                                                               dit->id);
+                                       }
                                }
                        }
                }
index a905df09b83621391152b8e0369fba144798e667..1d0cd7e35641c33b34da36fdfe90400038f153a8 100644 (file)
@@ -265,10 +265,11 @@ public:
         */
        auto is_scoreable() const -> bool
        {
-               return (type == symcache_item_type::FILTER) ||
+               return !(flags & SYMBOL_TYPE_CALLBACK) &&
+                          ((type == symcache_item_type::FILTER) ||
                           is_virtual() ||
                           (type == symcache_item_type::COMPOSITE) ||
-                          (type == symcache_item_type::CLASSIFIER);
+                          (type == symcache_item_type::CLASSIFIER));
        }
 
        auto is_ghost() const -> bool