From 44c5e96cf07a75fe8fa83d719c1fc5042d90489f Mon Sep 17 00:00:00 2001 From: Yacine Elhamer Date: Thu, 27 Jul 2023 12:44:07 +0100 Subject: [PATCH] RuleSet: remove irrelevant rules after dependecies have been checked --- capa/rules/__init__.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/capa/rules/__init__.py b/capa/rules/__init__.py index 43fb9f7b..00eb4863 100644 --- a/capa/rules/__init__.py +++ b/capa/rules/__init__.py @@ -1218,11 +1218,6 @@ class RuleSet: ): super().__init__() - if rules_filter_func: - # this allows for filtering the ruleset based on - # the execution context (static or dynamic) - rules = list(filter(rules_filter_func, rules)) - ensure_rules_are_unique(rules) # in the next step we extract subscope rules, @@ -1237,6 +1232,11 @@ class RuleSet: ensure_rule_dependencies_are_met(rules) + if rules_filter_func: + # this allows for filtering the ruleset based on + # the execution context (static or dynamic) + rules = list(filter(rules_filter_func, rules)) + if len(rules) == 0: raise InvalidRuleSet("no rules selected")