diff options
author | Willian Gustavo Veiga <contact@willianveiga.com> | 2015-05-30 12:29:27 -0300 |
---|---|---|
committer | Willian Gustavo Veiga <contact@willianveiga.com> | 2015-05-30 12:29:27 -0300 |
commit | 978832331acdcb59114bdba28498c248c5188883 (patch) | |
tree | 3c917d046ac9a2f6784c7066a097cf4f0d43626f | |
parent | 9237a0de1cc40c4cc53c31a0396bf26249e1d5a9 (diff) | |
download | php-git-978832331acdcb59114bdba28498c248c5188883.tar.gz |
Fix bug #31875 - get_defined_functions() should not list disabled functions.
-rw-r--r-- | Zend/zend_builtin_functions.c | 10 | ||||
-rw-r--r-- | tests/basic/bug31875.phpt | 12 |
2 files changed, 21 insertions, 1 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 6b65bdd330..dff8f52eda 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1870,7 +1870,15 @@ static int copy_function_name(zval *zv, int num_args, va_list args, zend_hash_ke } if (func->type == ZEND_INTERNAL_FUNCTION) { - add_next_index_str(internal_ar, zend_string_copy(hash_key->key)); + char *disable_functions = INI_STR("disable_functions"); + + if (disable_functions != NULL) { + if (strstr(disable_functions, func->common.function_name->val) == NULL) { + add_next_index_str(internal_ar, zend_string_copy(hash_key->key)); + } + } else { + add_next_index_str(internal_ar, zend_string_copy(hash_key->key)); + } } else if (func->type == ZEND_USER_FUNCTION) { add_next_index_str(user_ar, zend_string_copy(hash_key->key)); } diff --git a/tests/basic/bug31875.phpt b/tests/basic/bug31875.phpt new file mode 100644 index 0000000000..d29b7f1b1b --- /dev/null +++ b/tests/basic/bug31875.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #31875 get_defined_functions() should not list disabled functions +--CREDITS-- +Willian Gustavo Veiga <contact@willianveiga.com> +--INI-- +disable_functions=dl +--FILE-- +<?php +var_dump(in_array('dl', get_defined_functions())); +?> +--EXPECTF-- +bool(false) |