Skip to content

Commit 161c256

Browse files
defanatorFelipe Zimmerle
authored and
Felipe Zimmerle
committed
Implemented merge_boolean_value() for ConfigBoolean
This change makes the following directives to be merged properly: SecRequestBodyAccess SecResponseBodyAccess SecXmlExternalEntity SecUploadKeepFiles SecTmpSaveUploadedFiles
1 parent 2d11ff1 commit 161c256

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

headers/modsecurity/rules_properties.h

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737

3838
#define CODEPAGE_SEPARATORS " \t\n\r"
3939

40+
#define merge_boolean_value(to, from, default) \
41+
if (to == PropertyNotSetConfigBoolean) { \
42+
to = (from == PropertyNotSetConfigBoolean) ? default : from; \
43+
}
44+
4045
#ifdef __cplusplus
4146

4247
namespace modsecurity {
@@ -348,25 +353,25 @@ class RulesProperties {
348353
to->m_secRuleEngine = from->m_secRuleEngine;
349354
}
350355

351-
if (from->m_secRequestBodyAccess != PropertyNotSetConfigBoolean) {
352-
to->m_secRequestBodyAccess = from->m_secRequestBodyAccess;
353-
}
356+
merge_boolean_value(to->m_secRequestBodyAccess,
357+
from->m_secRequestBodyAccess,
358+
PropertyNotSetConfigBoolean);
354359

355-
if (from->m_secResponseBodyAccess != PropertyNotSetConfigBoolean) {
356-
to->m_secResponseBodyAccess = from->m_secResponseBodyAccess;
357-
}
360+
merge_boolean_value(to->m_secResponseBodyAccess,
361+
from->m_secResponseBodyAccess,
362+
PropertyNotSetConfigBoolean);
358363

359-
if (from->m_secXMLExternalEntity != PropertyNotSetConfigBoolean) {
360-
to->m_secXMLExternalEntity = from->m_secXMLExternalEntity;
361-
}
364+
merge_boolean_value(to->m_secXMLExternalEntity,
365+
from->m_secXMLExternalEntity,
366+
PropertyNotSetConfigBoolean);
362367

363-
if (from->m_uploadKeepFiles != PropertyNotSetConfigBoolean) {
364-
to->m_uploadKeepFiles = from->m_uploadKeepFiles;
365-
}
368+
merge_boolean_value(to->m_uploadKeepFiles,
369+
from->m_uploadKeepFiles,
370+
PropertyNotSetConfigBoolean);
366371

367-
if (from->m_tmpSaveUploadedFiles != PropertyNotSetConfigBoolean) {
368-
to->m_tmpSaveUploadedFiles = from->m_tmpSaveUploadedFiles;
369-
}
372+
merge_boolean_value(to->m_tmpSaveUploadedFiles,
373+
from->m_tmpSaveUploadedFiles,
374+
PropertyNotSetConfigBoolean);
370375

371376
to->m_requestBodyLimit.merge(&from->m_requestBodyLimit);
372377
to->m_responseBodyLimit.merge(&from->m_responseBodyLimit);

0 commit comments

Comments
 (0)