com php-src: Fixed situation, when CHECH_EXCEPTION() mi ght change value of "opline" variable and the following "opline" useages would access elemen
ts of different opcode. That might lead to un predictable behavior. (Only PHP-7 with GCC gl obal register variables was affected). CHECK_EX CEPTION()
macro is removed. ZEND_VM_NEXT_OP CODE_CHECK_EXCEPTIO() should be used instead. It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE(). As
a side e
| From: | Dmitry Stogov | Date: | Wed, 08 Jul 2015 15:33:58 +0000 |
| Subject: | com php-src: Fixed situation, when CHECH_EXCEPTION() mi ght change value of "opline" variable and the following "opline" useages would access elemen ts of different opcode. That might lead to un predictable behavior. (Only PHP-7 with GCC gl obal register variables was affected). CHECK_EX CEPTION() macro is removed. ZEND_VM_NEXT_OP CODE_CHECK_EXCEPTIO() should be used instead. It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE(). As a side e |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87854@lists.php.net to get a copy of this message | ||
Commit: 301ee26568af14bafa3938768ac00962bcf2ee66
Author: Dmitry Stogov <dmitry@zend.com> Wed, 8 Jul 2015 18:33:58 +0300
Parents: 993a658adae4813ef55a5d2fe71b453c306d7c84
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=301ee26568af14bafa3938768ac00962bcf2ee66
Log:
Fixed situation, when CHECH_EXCEPTION() might change value of "opline" variable and the
following "opline" useages would access elements of different opcode. That might lead to
unpredictable behavior. (Only PHP-7 with GCC global register variables was affected).
CHECK_EXCEPTION() macro is removed. ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTIO() should be used instead.
It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE().
As a side effect, this also slightly improved performnce of builds with GCC >= 4.8.
Changed paths:
M Zend/zend_compile.c
M Zend/zend_execute.c
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
M Zend/zend_vm_gen.php
Diff: <Diff exceeded maximum size>