diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2017-12-16 22:04:18 +0100 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-12-16 22:04:18 +0100 |
| commit | ee45104dbafc937d944995733f93fd4f160a6922 (patch) | |
| tree | d40243bdc3a77003f3d4109a2fb159923dd4ab4f | |
| parent | 19d0c5dc9f13028f25f5e743e1d05a2eb57a2ea7 (diff) | |
| download | php-git-ee45104dbafc937d944995733f93fd4f160a6922.tar.gz | |
Fixed bug #75698
| -rw-r--r-- | NEWS | 1 | ||||
| -rw-r--r-- | ext/opcache/Optimizer/dce.c | 2 | ||||
| -rw-r--r-- | ext/opcache/tests/bug75698.phpt | 31 |
3 files changed, 32 insertions, 2 deletions
@@ -8,6 +8,7 @@ PHP NEWS - Opcache: . Fixed bug #75687 (var 8 (TMP) has array key type but not value type). (Laruence) + . Fixed bug #75698 (Using @ crashes php7.2-fpm). (Nikita) - PGSQL: . Fixed bug #75671 (pg_version() crashes when called on a connection to diff --git a/ext/opcache/Optimizer/dce.c b/ext/opcache/Optimizer/dce.c index de36537913..6b5b114a34 100644 --- a/ext/opcache/Optimizer/dce.c +++ b/ext/opcache/Optimizer/dce.c @@ -311,9 +311,7 @@ static zend_bool try_remove_var_def(context *ctx, int free_var, int use_chain, z case ZEND_ASSIGN_BW_XOR: case ZEND_ASSIGN_POW: case ZEND_PRE_INC: - case ZEND_POST_INC: case ZEND_PRE_DEC: - case ZEND_POST_DEC: case ZEND_PRE_INC_OBJ: case ZEND_POST_INC_OBJ: case ZEND_PRE_DEC_OBJ: diff --git a/ext/opcache/tests/bug75698.phpt b/ext/opcache/tests/bug75698.phpt new file mode 100644 index 0000000000..6fd251bc0a --- /dev/null +++ b/ext/opcache/tests/bug75698.phpt @@ -0,0 +1,31 @@ +--TEST-- +Bug #75698: Using @ crashes php7.2-fpm +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php + +function test() { + $a = array("a","b","c","b"); + $b = array(); + foreach ($a as $c) + @$b[$c]++; // the @ is required to crash PHP 7.2.0 + var_dump($b); +} + +test(); + +?> +--EXPECT-- +array(3) { + ["a"]=> + int(1) + ["b"]=> + int(2) + ["c"]=> + int(1) +} |
