|
37 | 37 |
|
38 | 38 | #define CODEPAGE_SEPARATORS " \t\n\r" |
39 | 39 |
|
| 40 | +#define merge_boolean_value(to, from, default) \ |
| 41 | + if (to == PropertyNotSetConfigBoolean) { \ |
| 42 | + to = (from == PropertyNotSetConfigBoolean) ? default : from; \ |
| 43 | + } |
| 44 | + |
40 | 45 | #ifdef __cplusplus |
41 | 46 |
|
42 | 47 | namespace modsecurity { |
@@ -348,25 +353,25 @@ class RulesProperties { |
348 | 353 | to->m_secRuleEngine = from->m_secRuleEngine; |
349 | 354 | } |
350 | 355 |
|
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); |
354 | 359 |
|
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); |
358 | 363 |
|
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); |
362 | 367 |
|
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); |
366 | 371 |
|
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); |
370 | 375 |
|
371 | 376 | to->m_requestBodyLimit.merge(&from->m_requestBodyLimit); |
372 | 377 | to->m_responseBodyLimit.merge(&from->m_responseBodyLimit); |
|
0 commit comments