diff options
| author | Nikita Popov <nikic@php.net> | 2016-05-01 13:05:28 +0200 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2016-05-01 13:05:28 +0200 |
| commit | 6a9a0f2090f646bf6ae972a3e854f9a9acaf1012 (patch) | |
| tree | 075edca0b58b14766fa0e6001ecdadde5c8bc8a7 | |
| parent | 6151151036592193159783d2225f88042b1966b1 (diff) | |
| parent | d0069ca6c132f54631b67617a730cefb825589cb (diff) | |
| download | php-git-6a9a0f2090f646bf6ae972a3e854f9a9acaf1012.tar.gz | |
Merge branch 'PHP-7.0'
| -rw-r--r-- | Zend/tests/dynamic_fully_qualified_call.phpt | 15 | ||||
| -rw-r--r-- | Zend/zend_compile.c | 1 |
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); } |
