From 3c41751edac579d8d930f91f718dab46f90de3e5 Mon Sep 17 00:00:00 2001 From: Andrei Belov Date: Tue, 25 Dec 2018 18:43:20 +0300 Subject: [PATCH] Implemented merge_ruleengine_value() for RuleEngine This change makes the SecRuleEngine directive to be merged properly. --- headers/modsecurity/rules_properties.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/headers/modsecurity/rules_properties.h b/headers/modsecurity/rules_properties.h index b78cb534..dcd16420 100644 --- a/headers/modsecurity/rules_properties.h +++ b/headers/modsecurity/rules_properties.h @@ -42,6 +42,11 @@ to = (from == PropertyNotSetConfigBoolean) ? default : from; \ } +#define merge_ruleengine_value(to, from, default) \ + if (to == PropertyNotSetRuleEngine) { \ + to = (from == PropertyNotSetRuleEngine) ? default : from; \ + } + #ifdef __cplusplus namespace modsecurity { @@ -349,9 +354,8 @@ class RulesProperties { return amount_of_rules; } - if (from->m_secRuleEngine != PropertyNotSetRuleEngine) { - to->m_secRuleEngine = from->m_secRuleEngine; - } + merge_ruleengine_value(to->m_secRuleEngine, from->m_secRuleEngine, + PropertyNotSetRuleEngine); merge_boolean_value(to->m_secRequestBodyAccess, from->m_secRequestBodyAccess,