summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Gustavo Veiga <contact@willianveiga.com>2015-05-30 12:29:27 -0300
committerWillian Gustavo Veiga <contact@willianveiga.com>2015-05-30 12:29:27 -0300
commit978832331acdcb59114bdba28498c248c5188883 (patch)
tree3c917d046ac9a2f6784c7066a097cf4f0d43626f
parent9237a0de1cc40c4cc53c31a0396bf26249e1d5a9 (diff)
downloadphp-git-978832331acdcb59114bdba28498c248c5188883.tar.gz
Fix bug #31875 - get_defined_functions() should not list disabled functions.
-rw-r--r--Zend/zend_builtin_functions.c10
-rw-r--r--tests/basic/bug31875.phpt12
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)