diff options
4 files changed, 32 insertions, 1 deletions
diff --git a/src/sp_config_keywords.c b/src/sp_config_keywords.c index b627122..a177a5e 100644 --- a/src/sp_config_keywords.c +++ b/src/sp_config_keywords.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #include "php_snuffleupagus.h" | 1 | #include "php_snuffleupagus.h" |
| 2 | 2 | ||
| 3 | #define SP_SET_ENABLE_DISABLE(enable, disable, varname) \ | 3 | #define SP_SET_ENABLE_DISABLE(enable, disable, varname) \ |
| 4 | if (enable && disable) { \ | 4 | if (((varname) || enable) && disable) { \ |
| 5 | sp_log_err("config", "A rule can't be enabled and disabled on line %zu", sp_line_no); \ | 5 | sp_log_err("config", "A rule can't be enabled and disabled on line %zu", sp_line_no); \ |
| 6 | return -1; \ | 6 | return -1; \ |
| 7 | } \ | 7 | } \ |
diff --git a/src/tests/broken_configuration/broken_conf_enable_disable2.phpt b/src/tests/broken_configuration/broken_conf_enable_disable2.phpt new file mode 100644 index 0000000..0d6fb8c --- /dev/null +++ b/src/tests/broken_configuration/broken_conf_enable_disable2.phpt | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | --TEST-- | ||
| 2 | Global strict mode | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | <?php if (PHP_VERSION_ID >= 80000) print "skip"; ?> | ||
| 6 | --INI-- | ||
| 7 | sp.configuration_file={PWD}/../broken_configuration/config/broken_conf_enable_disable2.ini | ||
| 8 | --FILE-- | ||
| 9 | --EXPECTF-- | ||
| 10 | PHP Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 2 in Unknown on line 0 | ||
| 11 | |||
| 12 | Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 2 in Unknown on line 0 | ||
| 13 | |||
| 14 | Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0 | ||
| 15 | Could not startup. | ||
diff --git a/src/tests/broken_configuration/config/broken_conf_enable_disable2.ini b/src/tests/broken_configuration/config/broken_conf_enable_disable2.ini new file mode 100644 index 0000000..39d97cc --- /dev/null +++ b/src/tests/broken_configuration/config/broken_conf_enable_disable2.ini | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sp.global_strict.enable(); | ||
| 2 | sp.global_strict.disable(); | ||
diff --git a/src/tests/broken_configuration_php8/broken_conf_enable_disable2.phpt b/src/tests/broken_configuration_php8/broken_conf_enable_disable2.phpt new file mode 100644 index 0000000..efe5538 --- /dev/null +++ b/src/tests/broken_configuration_php8/broken_conf_enable_disable2.phpt | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | --TEST-- | ||
| 2 | Global strict mode | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print "skip"; ?> | ||
| 5 | <?php if (PHP_VERSION_ID < 80000) print "skip"; ?> | ||
| 6 | --INI-- | ||
| 7 | sp.configuration_file={PWD}/../broken_configuration/config/broken_conf_enable_disable2.ini | ||
| 8 | --FILE-- | ||
| 9 | --EXPECTF-- | ||
| 10 | |||
| 11 | Fatal error: [snuffleupagus][0.0.0.0][config][log] A rule can't be enabled and disabled on line 2 in Unknown on line 0 | ||
| 12 | |||
| 13 | Fatal error: [snuffleupagus][0.0.0.0][config][log] Invalid configuration file in Unknown on line 0 | ||
| 14 | Could not startup. | ||
