From ed2a5ebaeb9fa1d78832ce08a2664bd3d47babbe Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 24 Sep 2017 18:01:29 +0800 Subject: [PATCH] Fixed bug #75230 (Invalid opcode 49/1/8 using opcache) --- NEWS | 3 +++ ext/opcache/Optimizer/zend_optimizer.c | 1 + ext/opcache/tests/bug75230.phpt | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 ext/opcache/tests/bug75230.phpt diff --git a/NEWS b/NEWS index e16d63c9e5e..ab3a5b911b6 100644 --- a/NEWS +++ b/NEWS @@ -16,6 +16,9 @@ PHP NEWS - MySQLi: . Fixed bug #75018 (Data corruption when reading fields of bit type). (Anatol) +- Opcache: + . Fixed bug #75230 (Invalid opcode 49/1/8 using opcache). (Laruence) + - PCRE: . Fixed bug ##75223 (PCRE JIT broken in 7.2). (Dmitry) diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c index cc197c0e520..1fc81e1c3a2 100644 --- a/ext/opcache/Optimizer/zend_optimizer.c +++ b/ext/opcache/Optimizer/zend_optimizer.c @@ -260,6 +260,7 @@ int zend_optimizer_update_op1_const(zend_op_array *op_array, { switch (opline->opcode) { case ZEND_FREE: + case ZEND_CHECK_VAR: MAKE_NOP(opline); zval_ptr_dtor_nogc(val); return 1; diff --git a/ext/opcache/tests/bug75230.phpt b/ext/opcache/tests/bug75230.phpt new file mode 100644 index 00000000000..13100b36798 --- /dev/null +++ b/ext/opcache/tests/bug75230.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #75230 (Invalid opcode 49/1/8 using opcache) +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--SKIPIF-- + +--FILE-- + +--EXPECT-- +OK