summaryrefslogtreecommitdiff
path: root/src/sp_disabled_functions.c
diff options
context:
space:
mode:
authorjvoisin2018-03-06 13:44:40 +0100
committerjvoisin2018-03-06 13:44:40 +0100
commit580f6937ca3d8e3fd6d4d83229a17dcad57395a4 (patch)
treea0d9be2e7b169f4db201b6e0049eeaa2846bcfc0 /src/sp_disabled_functions.c
parent604761cdc0c2228c48ef394158ee24c3f61bfd3f (diff)
Fix a variadic-functions-related crash
Currently, we're not supporting virtual-patching on variadic functions. The commit makes it clear, and fix the related crash. This should close #157
Diffstat (limited to 'src/sp_disabled_functions.c')
-rw-r--r--src/sp_disabled_functions.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/sp_disabled_functions.c b/src/sp_disabled_functions.c
index e279e5f..0e05f4e 100644
--- a/src/sp_disabled_functions.c
+++ b/src/sp_disabled_functions.c
@@ -305,9 +305,16 @@ bool should_disable(zend_execute_data* execute_data, const char* builtin_name,
305 /* Check if we filter on parameter value*/ 305 /* Check if we filter on parameter value*/
306 if (config_node->param || config_node->r_param || 306 if (config_node->param || config_node->r_param ||
307 (config_node->pos != -1)) { 307 (config_node->pos != -1)) {
308 if (false == is_param_matching(execute_data, config_node, builtin_name, 308 if (!builtin_name && execute_data->func->op_array.arg_info->is_variadic) {
309 builtin_param, &arg_name, 309 sp_log_err(
310 builtin_param_name, &arg_value_str)) { 310 "disable_function",
311 "Snuffleupagus doesn't support variadic functions yet, sorry. "
312 "Check https://github.com/nbs-system/snuffleupagus/issues/164 for "
313 "details.");
314 } else if (false == is_param_matching(execute_data, config_node,
315 builtin_name, builtin_param,
316 &arg_name, builtin_param_name,
317 &arg_value_str)) {
311 goto next; 318 goto next;
312 } 319 }
313 } 320 }