From 5b25788a81bf7ad233d99cf3f5e9ce3dcc5e8602 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 2 May 2022 22:36:53 +0200 Subject: Add more tests for php8 --- .../config_disabled_functions_name_type_php8.ini | 1 + ...led_functions_param_str_representation_php8.ini | 1 + .../disabled_functions_name_type_php8.phpt | 16 ++++++++++++++ ...ed_functions_param_str_representation_php8.phpt | 25 ++++++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 src/tests/disable_function/config/config_disabled_functions_name_type_php8.ini create mode 100644 src/tests/disable_function/config/config_disabled_functions_param_str_representation_php8.ini create mode 100644 src/tests/disable_function/disabled_functions_name_type_php8.phpt create mode 100644 src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt (limited to 'src/tests/disable_function') diff --git a/src/tests/disable_function/config/config_disabled_functions_name_type_php8.ini b/src/tests/disable_function/config/config_disabled_functions_name_type_php8.ini new file mode 100644 index 0000000..0f521e7 --- /dev/null +++ b/src/tests/disable_function/config/config_disabled_functions_name_type_php8.ini @@ -0,0 +1 @@ +sp.disable_function.function_r("^strcmp$").param("string1").param_type("array").drop(); diff --git a/src/tests/disable_function/config/config_disabled_functions_param_str_representation_php8.ini b/src/tests/disable_function/config/config_disabled_functions_param_str_representation_php8.ini new file mode 100644 index 0000000..710ddb3 --- /dev/null +++ b/src/tests/disable_function/config/config_disabled_functions_param_str_representation_php8.ini @@ -0,0 +1 @@ +sp.disable_function.function("var_export").param("value").value("bla").drop(); diff --git a/src/tests/disable_function/disabled_functions_name_type_php8.phpt b/src/tests/disable_function/disabled_functions_name_type_php8.phpt new file mode 100644 index 0000000..8670b4d --- /dev/null +++ b/src/tests/disable_function/disabled_functions_name_type_php8.phpt @@ -0,0 +1,16 @@ +--TEST-- +Disable functions +--SKIPIF-- + + +--INI-- +sp.configuration_file={PWD}/config/config_disabled_functions_name_type_php8.ini +--FILE-- + +--EXPECTF-- +0 + +Fatal error: [snuffleupagus][0.0.0.0][disabled_function][drop] Aborted execution on call of the function 'strcmp', because its argument '$string1' content (?) matched a rule in %s/disabled_functions_name_type_php8.php on line 3 diff --git a/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt b/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt new file mode 100644 index 0000000..c06e612 --- /dev/null +++ b/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt @@ -0,0 +1,25 @@ +--TEST-- +Disable functions - casting various types to string internally in php8 +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/config_disabled_functions_param_str_representation_php8.ini +--FILE-- + +--EXPECTF-- +true +false +NULL +1 +1.0 +123 -- cgit v1.3 From bee9da3cb2b47d7121ac3fe9cc945716aaaa5d21 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 16 May 2022 19:34:37 +0200 Subject: Don't run disabled_functions_param_str_representation_php8 on php7 --- .../disabled_functions_param_str_representation_php8.phpt | 1 + 1 file changed, 1 insertion(+) (limited to 'src/tests/disable_function') diff --git a/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt b/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt index c06e612..aa5782b 100644 --- a/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt +++ b/src/tests/disable_function/disabled_functions_param_str_representation_php8.phpt @@ -2,6 +2,7 @@ Disable functions - casting various types to string internally in php8 --SKIPIF-- + --INI-- sp.configuration_file={PWD}/config/config_disabled_functions_param_str_representation_php8.ini --FILE-- -- cgit v1.3 From 423e133c569b7d749cba3e1b97e9e138e5f0f892 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 12 Jul 2022 20:57:19 +0200 Subject: Log `eval` content when matching on its parameter --- src/sp_execute.c | 8 +++++--- .../config/config_disabled_functions_eval_param.ini | 1 + .../disable_function/disabled_functions_eval_param.phpt | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/tests/disable_function/config/config_disabled_functions_eval_param.ini create mode 100644 src/tests/disable_function/disabled_functions_eval_param.phpt (limited to 'src/tests/disable_function') diff --git a/src/sp_execute.c b/src/sp_execute.c index a8798e4..2b8bb2e 100644 --- a/src/sp_execute.c +++ b/src/sp_execute.c @@ -136,9 +136,11 @@ static inline void sp_execute_handler(INTERNAL_FUNCTION_PARAMETERS, bool interna if (UNEXPECTED(EX(func)->op_array.type == ZEND_EVAL_CODE)) { const sp_list_node *config = zend_hash_str_find_ptr(SPCFG(disabled_functions), ZEND_STRL("eval")); - zend_string *filename = get_eval_filename(zend_get_executed_filename()); - is_builtin_matching(filename, "eval", NULL, config, SPCFG(disabled_functions)); - zend_string_release(filename); +#if PHP_VERSION_ID >= 80000 + is_builtin_matching(SPG(eval_source_string), "eval", "code", config, SPCFG(disabled_functions)); +#else + is_builtin_matching(Z_STR_P(SPG(eval_source_string)), "eval", "code", config, SPCFG(disabled_functions)); +#endif SPG(in_eval)++; sp_orig_execute(execute_data); diff --git a/src/tests/disable_function/config/config_disabled_functions_eval_param.ini b/src/tests/disable_function/config/config_disabled_functions_eval_param.ini new file mode 100644 index 0000000..b43faf1 --- /dev/null +++ b/src/tests/disable_function/config/config_disabled_functions_eval_param.ini @@ -0,0 +1 @@ +sp.disable_function.function("eval").param("code").drop(); diff --git a/src/tests/disable_function/disabled_functions_eval_param.phpt b/src/tests/disable_function/disabled_functions_eval_param.phpt new file mode 100644 index 0000000..4f3f1ef --- /dev/null +++ b/src/tests/disable_function/disabled_functions_eval_param.phpt @@ -0,0 +1,14 @@ +--TEST-- +Disable functions - eval, on matching parameter +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/config_disabled_functions_eval_param.ini +--FILE-- + +--EXPECTF-- +Fatal error: [snuffleupagus][0.0.0.0][disabled_function][drop] Aborted execution on call of the function 'eval', because its argument 'code' content ($var = 1337 + 1337;) matched a rule in %s/tests/disable_function/disabled_functions_eval_param.php(3) : eval()'d code on line 1 -- cgit v1.3