]> granicus.if.org Git - php/commit
Forbid use of <?= as a semi-reserved identifier
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 19 Jun 2020 07:27:19 +0000 (09:27 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 19 Jun 2020 07:29:58 +0000 (09:29 +0200)
commit55717656097918baf21fe272a788db501ed33854
tree661ec54ad09822e114c686b73e3e4d4e39400dda
parent6fa126e966d343b45f84d9eac114c14b73aef5a8
Forbid use of <?= as a semi-reserved identifier

One of the weirdest pieces of PHP code I've ever seen. In terms
of tokens, this gets internally translated to

    use x as y; echo as my_echo;

On master it crashes because this "echo" does not have attached
identifier metadata. Make sure it is added and then reject the
use of "<?=" as an identifier inside zend_lex_tstring.

Fixes oss-fuzz #23547.
Zend/tests/short_echo_as_identifier.phpt [new file with mode: 0644]
Zend/zend_language_parser.y
Zend/zend_language_scanner.h
Zend/zend_language_scanner.l