From fe43991e3dc6c46e2781d21369f5e268de7baef9 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 10 Oct 2017 18:11:31 +0200 Subject: Implement match on arguments position --- src/sp_config_keywords.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/sp_config_keywords.c') diff --git a/src/sp_config_keywords.c b/src/sp_config_keywords.c index 29f1bfc..1f48852 100644 --- a/src/sp_config_keywords.c +++ b/src/sp_config_keywords.c @@ -144,7 +144,9 @@ int parse_cookie_encryption(char *line) { int parse_disabled_functions(char *line) { int ret = 0; bool enable = true, disable = false; + char *pos = NULL; sp_disabled_function *df = pecalloc(sizeof(*df), 1, 1); + df->pos = -1; sp_config_functions sp_config_funcs_disabled_functions[] = { {parse_empty, SP_TOKEN_ENABLE, &(enable)}, @@ -169,6 +171,7 @@ int parse_disabled_functions(char *line) { {parse_regexp, SP_TOKEN_RET_REGEXP, &(df->r_ret)}, {parse_php_type, SP_TOKEN_RET_TYPE, &(df->ret_type)}, {parse_str, SP_TOKEN_LOCAL_VAR, &(df->var)}, + {parse_str, SP_TOKEN_VALUE_ARG_POS, &(pos)}, {0}}; ret = parse_keywords(sp_config_funcs_disabled_functions, line); @@ -233,6 +236,10 @@ int parse_disabled_functions(char *line) { return -1; } + if (pos) { + df->pos = atoi(pos) > 128 ? 128: atoi(pos); // FIXME do the strtol dance + } + if (df->function) { df->functions_list = parse_functions_list(df->function); } -- cgit v1.3