diff options
| author | Ferenc Kovacs <tyrael@php.net> | 2014-06-07 15:27:54 +0200 |
|---|---|---|
| committer | Ferenc Kovacs <tyrael@php.net> | 2014-06-07 15:27:54 +0200 |
| commit | 016b1f089e90af2e6a72c78107edce8eb2dcb31f (patch) | |
| tree | a7b345a7e5e557fce6bf748e9f3fbbc9f1cede20 | |
| parent | bcef1beb8f24c8ffc11846d1a123953ca12ed2de (diff) | |
| download | php-git-016b1f089e90af2e6a72c78107edce8eb2dcb31f.tar.gz | |
Fix bug #67392: token_name() does not return name for T_POW and T_POW_EQUAL token
| -rw-r--r-- | NEWS | 4 | ||||
| -rw-r--r-- | ext/tokenizer/tests/bug67395.phpt | 15 | ||||
| -rw-r--r-- | ext/tokenizer/tokenizer_data.c | 4 |
3 files changed, 23 insertions, 0 deletions
@@ -7,6 +7,10 @@ PHP NEWS (Remi) (CVE-2014-3981) . Fixed bug #67392 (dtrace breaks argument unpack). (Nikita) +- Tokenizer: + . Fixed bug #67395 (token_name() does not return name for T_POW and T_POW_EQUAL + token). (Ferenc) + 05 Jun 2014, PHP 5.6.0 Beta 4 - Core: diff --git a/ext/tokenizer/tests/bug67395.phpt b/ext/tokenizer/tests/bug67395.phpt new file mode 100644 index 0000000000..c9b7f3012f --- /dev/null +++ b/ext/tokenizer/tests/bug67395.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug 67395: token_name() does not return name for T_POW and T_POW_EQUAL token +--FILE-- +<?php + +$powToken = token_get_all('<?php **')[1][0]; +var_dump(token_name($powToken)); + +$powEqualToken = token_get_all('<?php **=')[1][0]; +var_dump(token_name($powEqualToken)); + +?> +--EXPECT-- +string(5) "T_POW" +string(11) "T_POW_EQUAL" diff --git a/ext/tokenizer/tokenizer_data.c b/ext/tokenizer/tokenizer_data.c index dc48f040f1..5a01bde573 100644 --- a/ext/tokenizer/tokenizer_data.c +++ b/ext/tokenizer/tokenizer_data.c @@ -160,6 +160,8 @@ void tokenizer_register_constants(INIT_FUNC_ARGS) { REGISTER_LONG_CONSTANT("T_NS_SEPARATOR", T_NS_SEPARATOR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_ELLIPSIS", T_ELLIPSIS, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("T_DOUBLE_COLON", T_PAAMAYIM_NEKUDOTAYIM, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_POW", T_POW, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("T_POW_EQUAL", T_POW_EQUAL, CONST_CS | CONST_PERSISTENT); } char *get_token_type_name(int token_type) @@ -296,6 +298,8 @@ char *get_token_type_name(int token_type) case T_DIR: return "T_DIR"; case T_NS_SEPARATOR: return "T_NS_SEPARATOR"; case T_ELLIPSIS: return "T_ELLIPSIS"; + case T_POW: return "T_POW"; + case T_POW_EQUAL: return "T_POW_EQUAL"; } return "UNKNOWN"; |
