|
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