. Fixed bug #77339 (__callStatic may get incorrect arguments). (Dmitry)
. Fixed bug #77494 (Disabling class causes segfault on member access).
(Dmitry)
+ . Fixed bug #77530 (PHP crashes when parsing `(2)::class`). (Ekin)
- Curl:
. Fixed bug #76675 (Segfault with H2 server push). (Pedro Magalhães)
static zend_bool zend_try_compile_const_expr_resolve_class_name(zval *zv, zend_ast *class_ast, zend_ast *name_ast, zend_bool constant) /* {{{ */
{
uint32_t fetch_type;
+ zval *class_name;
if (name_ast->kind != ZEND_AST_ZVAL) {
return 0;
"Dynamic class names are not allowed in compile-time ::class fetch");
}
- fetch_type = zend_get_class_fetch_type(zend_ast_get_str(class_ast));
+ class_name = zend_ast_get_zval(class_ast);
+
+ if (Z_TYPE_P(class_name) != IS_STRING) {
+ zend_error_noreturn(E_COMPILE_ERROR, "Illegal class name");
+ }
+
+ fetch_type = zend_get_class_fetch_type(Z_STR_P(class_name));
zend_ensure_valid_class_fetch_type(fetch_type);
switch (fetch_type) {