From fb9b3787246dff3e9b76e75f698ff7131ea5403d Mon Sep 17 00:00:00 2001 From: Ben Fuhrmannek Date: Thu, 18 Feb 2021 15:59:41 +0100 Subject: rewrote parameter matching logic. breaks compatibility with previous versions. --- .../config/disabled_function_excess_args.ini | 1 + .../config/disabled_function_named_args.ini | 12 ++++++++++++ .../disable_function/config/disabled_functions_pos.ini | 2 +- .../disable_function/disabled_function_excess_args.phpt | 14 ++++++++++++++ .../disabled_function_named_args_ooo_opt_param.phpt | 14 ++++++++++++++ .../disabled_function_named_args_ooo_opt_pos.phpt | 14 ++++++++++++++ .../disabled_function_named_args_ooo_param.phpt | 14 ++++++++++++++ .../disabled_function_named_args_ooo_pos.phpt | 14 ++++++++++++++ .../disabled_function_named_args_param.phpt | 14 ++++++++++++++ .../disable_function/disabled_function_named_args_pos.phpt | 14 ++++++++++++++ .../disabled_function_named_args_skip_param.phpt | 14 ++++++++++++++ .../disabled_function_named_args_skip_pos.phpt | 14 ++++++++++++++ .../disable_function/disabled_functions_name_type.phpt | 2 +- .../disable_function/disabled_functions_param_pos.phpt | 2 -- .../disable_function/disabled_functions_pos_type.phpt | 4 ---- 15 files changed, 141 insertions(+), 8 deletions(-) create mode 100644 src/tests/disable_function/config/disabled_function_excess_args.ini create mode 100644 src/tests/disable_function/config/disabled_function_named_args.ini create mode 100644 src/tests/disable_function/disabled_function_excess_args.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_ooo_opt_param.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_ooo_opt_pos.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_ooo_param.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_ooo_pos.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_param.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_pos.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_skip_param.phpt create mode 100644 src/tests/disable_function/disabled_function_named_args_skip_pos.phpt (limited to 'src/tests/disable_function') diff --git a/src/tests/disable_function/config/disabled_function_excess_args.ini b/src/tests/disable_function/config/disabled_function_excess_args.ini new file mode 100644 index 0000000..289dc33 --- /dev/null +++ b/src/tests/disable_function/config/disabled_function_excess_args.ini @@ -0,0 +1 @@ +sp.disable_function.function("foo_excess_args").pos("3").value("blubb").drop() diff --git a/src/tests/disable_function/config/disabled_function_named_args.ini b/src/tests/disable_function/config/disabled_function_named_args.ini new file mode 100644 index 0000000..094bc0d --- /dev/null +++ b/src/tests/disable_function/config/disabled_function_named_args.ini @@ -0,0 +1,12 @@ +sp.disable_function.function("foo_named_args_pos").pos("0").value("bob").drop() +sp.disable_function.function("foo_named_args_param").param("name").value("bob").drop() + +sp.disable_function.function("foo_named_args_ooo_pos").pos("0").value("bob").drop() +sp.disable_function.function("foo_named_args_ooo_param").param("name").value("bob").drop() + +sp.disable_function.function("foo_named_args_ooo_opt_pos").pos("2").value("green").drop() +sp.disable_function.function("foo_named_args_ooo_opt_param").param("color").value("green").drop() + +sp.disable_function.function("foo_named_args_skip_pos").pos("2").value("green").drop() +sp.disable_function.function("foo_named_args_skip_param").param("color").value("green").drop() + diff --git a/src/tests/disable_function/config/disabled_functions_pos.ini b/src/tests/disable_function/config/disabled_functions_pos.ini index f4c1e05..8b12fc6 100644 --- a/src/tests/disable_function/config/disabled_functions_pos.ini +++ b/src/tests/disable_function/config/disabled_functions_pos.ini @@ -1,4 +1,4 @@ sp.disable_function.function("system").pos("1337").value("id").drop(); sp.disable_function.function("system").pos("0").value("id").drop(); -sp.disable_function.function("system").pos("1").param_type("ARRAY").alias("1").drop(); +sp.disable_function.function("system").pos("0").param_type("ARRAY").alias("1").drop(); sp.disable_function.function("strtoupper").pos("0").value("id").alias("strlen array").drop(); diff --git a/src/tests/disable_function/disabled_function_excess_args.phpt b/src/tests/disable_function/disabled_function_excess_args.phpt new file mode 100644 index 0000000..31b3f33 --- /dev/null +++ b/src/tests/disable_function/disabled_function_excess_args.phpt @@ -0,0 +1,14 @@ +--TEST-- +Disable functions with excess arguments +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_excess_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + +--INI-- +sp.configuration_file={PWD}/config/disabled_function_named_args.ini +--FILE-- + --EXPECTF-- -Warning: [snuffleupagus][0.0.0.0][config][log] It seems that you wrote a rule filtering on the 1337th argument of the function 'system', but it takes only 1 arguments. Matching on _all_ arguments instead. in %a/disabled_functions_param_pos.php on line 2 - Fatal error: [snuffleupagus][0.0.0.0][disabled_function][drop] Aborted execution on call of the function 'system', because its argument 'command' content (id) matched a rule in %a/disabled_functions_param_pos.php on line %d diff --git a/src/tests/disable_function/disabled_functions_pos_type.phpt b/src/tests/disable_function/disabled_functions_pos_type.phpt index ba134ad..29944c0 100644 --- a/src/tests/disable_function/disabled_functions_pos_type.phpt +++ b/src/tests/disable_function/disabled_functions_pos_type.phpt @@ -9,8 +9,4 @@ sp.configuration_file={PWD}/config/disabled_functions_pos.ini system([123, 456]); ?> --EXPECTF-- -Warning: [snuffleupagus][0.0.0.0][config][log] It seems that you wrote a rule filtering on the 1337th argument of the function 'system', but it takes only 1 arguments. Matching on _all_ arguments instead. in %a/disabled_functions_pos_type.php on line %d - -Warning: [snuffleupagus][0.0.0.0][config][log] It seems that you wrote a rule filtering on the 1st argument of the function 'system', but it takes only 1 arguments. Matching on _all_ arguments instead. in %a/disabled_functions_pos_type.php on line %d - Fatal error: [snuffleupagus][0.0.0.0][disabled_function][drop] Aborted execution on call of the function 'system', because its argument 'command' content (?) matched the rule '1' in %a/disabled_functions_pos_type.php on line %d -- cgit v1.3