diff options
author | Xinchen Hui <laruence@gmail.com> | 2019-03-14 16:46:04 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2019-03-14 16:46:04 +0800 |
commit | c7920aba3e1892accca7cd13ef5b8a8fbf48b5c2 (patch) | |
tree | 3911ba8ea023314090a44e331684d844daab1526 /Zend/zend_compile.c | |
parent | 6814ba11bc8c2638b7345aaea176fc7c678aa07f (diff) | |
download | php-git-c7920aba3e1892accca7cd13ef5b8a8fbf48b5c2.tar.gz |
Fixed bug #77738 (Nullptr deref in zend_compile_expr)
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r-- | Zend/zend_compile.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index d0bece7228..a91dfeeecf 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -7673,11 +7673,11 @@ void zend_compile_const(znode *result, zend_ast *ast) /* {{{ */ if (zend_string_equals_literal(resolved_name, "__COMPILER_HALT_OFFSET__") || (name_ast->attr != ZEND_NAME_RELATIVE && zend_string_equals_literal(orig_name, "__COMPILER_HALT_OFFSET__"))) { zend_ast *last = CG(ast); - while (last->kind == ZEND_AST_STMT_LIST) { + while (last && last->kind == ZEND_AST_STMT_LIST) { zend_ast_list *list = zend_ast_get_list(last); last = list->child[list->children-1]; } - if (last->kind == ZEND_AST_HALT_COMPILER) { + if (last && last->kind == ZEND_AST_HALT_COMPILER) { result->op_type = IS_CONST; ZVAL_LONG(&result->u.constant, Z_LVAL_P(zend_ast_get_zval(last->child[0]))); zend_string_release(resolved_name); |