diff options
| author | jvoisin | 2017-10-10 18:36:30 +0200 |
|---|---|---|
| committer | jvoisin | 2017-10-10 18:36:30 +0200 |
| commit | 994e197bcd6107f7af6279f3c897f05017ca22db (patch) | |
| tree | d6f84144056d52908a6ad2919241b3f9acbfa12c /src | |
| parent | ef1cb7661ed577039c7fa6caea7490330237f091 (diff) | |
.allow() is now working for require
Diffstat (limited to 'src')
| -rw-r--r-- | src/sp_execute.c | 3 | ||||
| -rw-r--r-- | src/tests/config/config_disabled_functions_require_allow.ini | 1 | ||||
| -rw-r--r-- | src/tests/disabled_functions_require_allow.phpt | 25 |
3 files changed, 29 insertions, 0 deletions
diff --git a/src/sp_execute.c b/src/sp_execute.c index 419e56d..c8f7acf 100644 --- a/src/sp_execute.c +++ b/src/sp_execute.c | |||
| @@ -38,6 +38,9 @@ static void construct_include_handler(const char * const filename) { | |||
| 38 | while (config) { | 38 | while (config) { |
| 39 | sp_disabled_function *config_node = (sp_disabled_function*)(config->data); | 39 | sp_disabled_function *config_node = (sp_disabled_function*)(config->data); |
| 40 | if (true == is_regexp_matching(config_node->regexp, filename)) { | 40 | if (true == is_regexp_matching(config_node->regexp, filename)) { |
| 41 | if (true == config_node->allow) { | ||
| 42 | return; | ||
| 43 | } | ||
| 41 | sp_log_disable("include", "inclusion path", filename, config_node); | 44 | sp_log_disable("include", "inclusion path", filename, config_node); |
| 42 | if (false == config_node->simulation) { | 45 | if (false == config_node->simulation) { |
| 43 | sp_terminate(); | 46 | sp_terminate(); |
diff --git a/src/tests/config/config_disabled_functions_require_allow.ini b/src/tests/config/config_disabled_functions_require_allow.ini new file mode 100644 index 0000000..c533341 --- /dev/null +++ b/src/tests/config/config_disabled_functions_require_allow.ini | |||
| @@ -0,0 +1 @@ | |||
| sp.disable_functions.function("require").param("").value_r("meh$").allow(); | |||
diff --git a/src/tests/disabled_functions_require_allow.phpt b/src/tests/disabled_functions_require_allow.phpt new file mode 100644 index 0000000..1e3bc56 --- /dev/null +++ b/src/tests/disabled_functions_require_allow.phpt | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | --TEST-- | ||
| 2 | Disable functions - Require (allow) | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) die "skip"; ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/config_disabled_functions_require_allow.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | $dir = __DIR__; | ||
| 10 | file_put_contents($dir . '/test.bla', "BLA\n"); | ||
| 11 | file_put_contents($dir . '/test.meh', "MEH\n"); | ||
| 12 | require $dir . '/test.bla'; | ||
| 13 | require $dir . '/test.meh'; | ||
| 14 | echo "1337"; | ||
| 15 | ?> | ||
| 16 | --EXPECTF-- | ||
| 17 | BLA | ||
| 18 | MEH | ||
| 19 | 1337 | ||
| 20 | --CLEAN-- | ||
| 21 | <?php | ||
| 22 | $dir = __DIR__; | ||
| 23 | unlink($dir . '/test.bla'); | ||
| 24 | unlink($dir . '/test.meh'); | ||
| 25 | ?> | ||
