From 580f6937ca3d8e3fd6d4d83229a17dcad57395a4 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 6 Mar 2018 13:44:40 +0100 Subject: 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 --- src/sp_disabled_functions.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/sp_disabled_functions.c') 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, /* Check if we filter on parameter value*/ if (config_node->param || config_node->r_param || (config_node->pos != -1)) { - if (false == is_param_matching(execute_data, config_node, builtin_name, - builtin_param, &arg_name, - builtin_param_name, &arg_value_str)) { + if (!builtin_name && execute_data->func->op_array.arg_info->is_variadic) { + sp_log_err( + "disable_function", + "Snuffleupagus doesn't support variadic functions yet, sorry. " + "Check https://github.com/nbs-system/snuffleupagus/issues/164 for " + "details."); + } else if (false == is_param_matching(execute_data, config_node, + builtin_name, builtin_param, + &arg_name, builtin_param_name, + &arg_value_str)) { goto next; } } -- cgit v1.3