summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-05-01 13:05:28 +0200
committerNikita Popov <nikic@php.net>2016-05-01 13:05:28 +0200
commit6a9a0f2090f646bf6ae972a3e854f9a9acaf1012 (patch)
tree075edca0b58b14766fa0e6001ecdadde5c8bc8a7
parent6151151036592193159783d2225f88042b1966b1 (diff)
parentd0069ca6c132f54631b67617a730cefb825589cb (diff)
downloadphp-git-6a9a0f2090f646bf6ae972a3e854f9a9acaf1012.tar.gz
Merge branch 'PHP-7.0'
-rw-r--r--Zend/tests/dynamic_fully_qualified_call.phpt15
-rw-r--r--Zend/zend_compile.c1
2 files changed, 16 insertions, 0 deletions
diff --git a/Zend/tests/dynamic_fully_qualified_call.phpt b/Zend/tests/dynamic_fully_qualified_call.phpt
new file mode 100644
index 0000000000..cca6fa38b6
--- /dev/null
+++ b/Zend/tests/dynamic_fully_qualified_call.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Crash when using dynamic call syntax with fully qualified name in a namespace
+--FILE--
+<?php
+
+namespace Foo;
+try {
+ ('\bar')();
+} catch (\Error $e) {
+ echo $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Call to undefined function bar()
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index c64e40bfd9..23781ba423 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -871,6 +871,7 @@ zend_string *zend_resolve_non_class_name(
if (ZSTR_VAL(name)[0] == '\\') {
/* Remove \ prefix (only relevant if this is a string rather than a label) */
+ *is_fully_qualified = 1;
return zend_string_init(ZSTR_VAL(name) + 1, ZSTR_LEN(name) - 1, 0);
}