Browse Source

Merge branch 'PHP-7.0'

* PHP-7.0:
  Fix serializing ZEND_AST_SHELL_EXEC
pull/1894/merge
Sara Golemon 10 years ago
parent
commit
8523b1f8ed
  1. 11
      Zend/tests/ast_serialize_backtick_literal.phpt
  2. 6
      Zend/zend_ast.c

11
Zend/tests/ast_serialize_backtick_literal.phpt

@ -0,0 +1,11 @@
--TEST--
Serialization of backtick literal is incorrect
--INI--
zend.assertions=1
--FILE--
<?php
assert_options(ASSERT_WARNING);
assert(false && `echo -n ""`);
--EXPECTF--
Warning: assert(): assert(false && `echo -n ""`) failed in %s/ast_serialize_backtick_literal.php on line 4

6
Zend/zend_ast.c

@ -1220,7 +1220,11 @@ simple_list:
if (ast->child[0]->kind == ZEND_AST_ENCAPS_LIST) {
zend_ast_export_encaps_list(str, '`', (zend_ast_list*)ast->child[0], indent);
} else {
zend_ast_export_ex(str, ast->child[0], 0, indent);
zval *zv;
ZEND_ASSERT(ast->child[0]->kind == ZEND_AST_ZVAL);
zv = zend_ast_get_zval(ast->child[0]);
ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING);
zend_ast_export_qstr(str, '`', Z_STR_P(zv));
}
smart_str_appendc(str, '`');
break;

Loading…
Cancel
Save