summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 fb196f04b5..c79f1d75f6 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -773,6 +773,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);
}