File php-CVE-2017-6441.patch of Package php7.7220
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4366,8 +4366,12 @@ void zend_compile_declare(zend_ast *ast) /* {{{ */
zend_ast *declare_ast = declares->child[i];
zend_ast *name_ast = declare_ast->child[0];
zend_ast *value_ast = declare_ast->child[1];
-
zend_string *name = zend_ast_get_str(name_ast);
+
+ if (value_ast->kind != ZEND_AST_ZVAL) {
+ zend_error_noreturn(E_COMPILE_ERROR, "declare(%s) value must be a literal", ZSTR_VAL(name));
+ }
+
if (zend_string_equals_literal_ci(name, "ticks")) {
zval value_zv;
zend_const_expr_to_zval(&value_zv, value_ast);