com php-src: Fix bug #67392: token_name() does not return name for T_POW and T_POW_EQUAL token : NEWS ext/tokenizer/tests/bug67395.phpt ex
t/tokenizer/tokenizer_data.c
| From: | Ferenc Kovacs | Date: | Sat, 07 Jun 2014 13:27:54 +0000 |
| Subject: | com php-src: Fix bug #67392: token_name() does not return name for T_POW and T_POW_EQUAL token : NEWS ext/tokenizer/tests/bug67395.phpt ex t/tokenizer/tokenizer_data.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-78727@lists.php.net to get a copy of this message | ||
Commit: 016b1f089e90af2e6a72c78107edce8eb2dcb31f
Author: Ferenc Kovacs <tyrael@php.net> Sat, 7 Jun 2014 15:27:54 +0200
Parents: bcef1beb8f24c8ffc11846d1a123953ca12ed2de
Branches: PHP-5.6
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=016b1f089e90af2e6a72c78107edce8eb2dcb31f
Log:
Fix bug #67392: token_name() does not return name for T_POW and T_POW_EQUAL token
Bugs:
https://bugs.php.net/67392
Changed paths:
M NEWS
A ext/tokenizer/tests/bug67395.phpt
M ext/tokenizer/tokenizer_data.c
Diff:
diff --git a/NEWS b/NEWS
index 3a1290f..a930dd6 100644
--- a/NEWS
+++ b/NEWS
@@ -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 0000000..c9b7f30
--- /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 dc48f04..5a01bde 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";