From ec68b502535037ae6fd70c8ebfc29645cde20f92 Mon Sep 17 00:00:00 2001 From: Federico Di Pierro Date: Thu, 8 Feb 2024 14:45:33 +0100 Subject: [PATCH] chore(userspace/engine): introduce proper check to avoid future issues throwing an exception. Signed-off-by: Federico Di Pierro --- userspace/engine/falco_engine.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/userspace/engine/falco_engine.cpp b/userspace/engine/falco_engine.cpp index 9110acc0..b51591d0 100644 --- a/userspace/engine/falco_engine.cpp +++ b/userspace/engine/falco_engine.cpp @@ -195,7 +195,13 @@ std::unique_ptr falco_engine::load_rules(const std::string &rules_c auto source = find_source(rule.source); std::shared_ptr filter( sinsp_filter_compiler(source->filter_factory, rule.condition.get()).compile()); - m_rules.insert(rule, rule.name); + auto rule_id = m_rules.insert(rule, rule.name); + if (rule_id != rule.id) + { + throw falco_exception("Incompatible ID for rule: " + rule.name + + " | compiled ID: " + std::to_string(rule.id) + + " | stats_mgr ID: " + std::to_string(rule_id)); + } source->ruleset->add(rule, filter, rule.condition); // By default rules are enabled/disabled for the default ruleset