summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sp_disabled_functions.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/sp_disabled_functions.c b/src/sp_disabled_functions.c
index f597feb..bb22f71 100644
--- a/src/sp_disabled_functions.c
+++ b/src/sp_disabled_functions.c
@@ -242,23 +242,16 @@ static zend_execute_data* is_file_matching(
242#undef ITERATE 242#undef ITERATE
243} 243}
244 244
245static bool check_is_builtin_name( 245inline static bool check_is_builtin_name(
246 sp_disabled_function const* const config_node) { 246 sp_disabled_function const* const config_node) {
247 if (config_node->function) { 247 if (EXPECTED(config_node->function)) {
248 return (zend_string_equals_literal(config_node->function, "include") || 248 return (zend_string_equals_literal(config_node->function, "include") ||
249 zend_string_equals_literal(config_node->function, "include_once") || 249 zend_string_equals_literal(config_node->function, "include_once") ||
250 zend_string_equals_literal(config_node->function, "require") || 250 zend_string_equals_literal(config_node->function, "require") ||
251 zend_string_equals_literal(config_node->function, "require_once") || 251 zend_string_equals_literal(config_node->function, "require_once") ||
252 zend_string_equals_literal(config_node->function, "echo")); 252 zend_string_equals_literal(config_node->function, "echo"));
253 } 253 }
254 if (config_node->r_function) { 254 return false; // LCOV_EXCL_LINE
255 return (sp_is_regexp_matching(config_node->r_function, "include") ||
256 sp_is_regexp_matching(config_node->r_function, "include_once") ||
257 sp_is_regexp_matching(config_node->r_function, "require") ||
258 sp_is_regexp_matching(config_node->r_function, "require_once") ||
259 sp_is_regexp_matching(config_node->r_function, "echo"));
260 }
261 return false;
262} 255}
263 256
264void should_disable_ht(zend_execute_data* execute_data, 257void should_disable_ht(zend_execute_data* execute_data,
@@ -317,7 +310,7 @@ static void should_disable(zend_execute_data* execute_data,
317 } else if (config_node->function) { 310 } else if (config_node->function) {
318 if (0 != 311 if (0 !=
319 strcmp(ZSTR_VAL(config_node->function), complete_function_path)) { 312 strcmp(ZSTR_VAL(config_node->function), complete_function_path)) {
320 goto next; 313 goto next; // LCOV_EXCL_LINE
321 } 314 }
322 } else if (config_node->r_function) { 315 } else if (config_node->r_function) {
323 if (false == sp_is_regexp_matching(config_node->r_function, 316 if (false == sp_is_regexp_matching(config_node->r_function,
@@ -378,9 +371,12 @@ static void should_disable(zend_execute_data* execute_data,
378 } 371 }
379 372
380 if (config_node->r_value || config_node->value) { 373 if (config_node->r_value || config_node->value) {
381 if (check_is_builtin_name(config_node) && !config_node->var && 374 if (check_is_builtin_name(config_node) &&
382 !config_node->param && !config_node->r_param && !config_node->key && 375 !config_node->var &&
383 !config_node->r_key) { 376 !config_node->key &&
377 !config_node->r_key &&
378 !config_node->param &&
379 !config_node->r_param) {
384 if (false == is_param_matching(execute_data, config_node, builtin_param, 380 if (false == is_param_matching(execute_data, config_node, builtin_param,
385 &arg_name, builtin_param_name, 381 &arg_name, builtin_param_name,
386 &arg_value_str)) { 382 &arg_value_str)) {
@@ -448,7 +444,7 @@ static void should_drop_on_ret(const zval* return_value,
448 } else if (config_node->function) { 444 } else if (config_node->function) {
449 if (0 != 445 if (0 !=
450 strcmp(ZSTR_VAL(config_node->function), complete_function_path)) { 446 strcmp(ZSTR_VAL(config_node->function), complete_function_path)) {
451 goto next; 447 goto next; // LCOV_EXCL_LINE
452 } 448 }
453 } else if (config_node->r_function) { 449 } else if (config_node->r_function) {
454 if (false == sp_is_regexp_matching(config_node->r_function, 450 if (false == sp_is_regexp_matching(config_node->r_function,