From: Xinchen Hui Date: Thu, 15 Mar 2018 03:17:00 +0000 (+0800) Subject: Fixed bug #76094 (Access violation when using opcache) X-Git-Tag: php-7.2.5RC1~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4758164ac5fd61be70d9366175b30df758ac8262;p=php Fixed bug #76094 (Access violation when using opcache) --- diff --git a/NEWS b/NEWS index 46db91b990..4882f007b4 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,9 @@ PHP NEWS . Fixed bug #76088 (ODBC functions are not available by default on Windows). (cmb) +- Opcache: + . Fixed bug #76094 (Access violation when using opcache). (Laruence) + - Standard: . Fixed bug #74139 (mail.add_x_header default inconsistent with docs). (cmb) diff --git a/ext/opcache/Optimizer/dce.c b/ext/opcache/Optimizer/dce.c index 358870beaf..c146599a35 100644 --- a/ext/opcache/Optimizer/dce.c +++ b/ext/opcache/Optimizer/dce.c @@ -356,7 +356,8 @@ static zend_bool dce_instr(context *ctx, zend_op *opline, zend_ssa_op *ssa_op) { if ((opline->op1_type & (IS_VAR|IS_TMP_VAR))&& !is_var_dead(ctx, ssa_op->op1_use)) { if (!try_remove_var_def(ctx, ssa_op->op1_use, ssa_op->op1_use_chain, opline)) { - if (ssa->var_info[ssa_op->op1_use].type & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) { + if (ssa->var_info[ssa_op->op1_use].type & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF) + && opline->opcode != ZEND_CASE) { free_var = ssa_op->op1_use; free_var_type = opline->op1_type; } diff --git a/ext/opcache/tests/bug76094.phpt b/ext/opcache/tests/bug76094.phpt new file mode 100644 index 0000000000..4f5e037ead --- /dev/null +++ b/ext/opcache/tests/bug76094.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #76094 (Access violation when using opcache) +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--SKIPIF-- + +--FILE-- + +--EXPECT-- +int(0)