From: Mike Stepanek (mstepane) Date: Tue, 27 Apr 2021 10:12:26 +0000 (+0000) Subject: Merge pull request #2860 in SNORT/snort3 from ~DKYRYLOV/snort3:dump_rule_signature_fi... X-Git-Tag: 3.1.5.0~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18a3f35c1eefea88f6b21a82295c74acc52c08e8;p=thirdparty%2Fsnort3.git Merge pull request #2860 in SNORT/snort3 from ~DKYRYLOV/snort3:dump_rule_signature_fix to master Squashed commit of the following: commit ac143943fff79eb95f80d84c05416f0c13c4d18b Author: dkyrylov Date: Tue Apr 20 13:49:46 2021 +0300 parser: Remove rule merge in dump mode --- diff --git a/src/parser/parse_rule.cc b/src/parser/parse_rule.cc index 6f9c03b53..31decae3c 100644 --- a/src/parser/parse_rule.cc +++ b/src/parser/parse_rule.cc @@ -775,23 +775,26 @@ static void SetupRTNFuncList(RuleTreeNode* rtn) } // if it doesn't match any of the existing nodes, make a new node and -// stick it at the end of the list +// stick it at the end of the list. Write every rtn in dump mode +// to retain uninitialized variables. static RuleTreeNode* ProcessHeadNode(SnortConfig* sc, RuleTreeNode* test_node) { - RuleTreeNode* rtn = findHeadNode( - sc, test_node, get_ips_policy()->policy_id); - - if ( rtn ) - FreeRuleTreeNode(test_node); - - else + RuleTreeNode* rtn; + if ( !sc->dump_rule_info() ) { - head_count++; - rtn = new RuleTreeNode; - XferHeader(test_node, rtn); - SetupRTNFuncList(rtn); - } + rtn = findHeadNode( + sc, test_node, get_ips_policy()->policy_id); + if ( rtn ) + { + FreeRuleTreeNode(test_node); + return rtn; + } + } + head_count++; + rtn = new RuleTreeNode; + XferHeader(test_node, rtn); + SetupRTNFuncList(rtn); return rtn; }