From 34d5c1b16fc0499548806b97e3d4c49a2756406a Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 3 Apr 2019 22:46:49 +0300 Subject: [PATCH] Fixed crash --- ext/opcache/jit/zend_jit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/opcache/jit/zend_jit.c b/ext/opcache/jit/zend_jit.c index 5a8a014e47..fffab897c2 100644 --- a/ext/opcache/jit/zend_jit.c +++ b/ext/opcache/jit/zend_jit.c @@ -2097,11 +2097,11 @@ static int zend_jit(zend_op_array *op_array, zend_ssa *ssa, const zend_op *rt_op zend_jit_label(&dasm_state, b); if (zend_jit_level < ZEND_JIT_LEVEL_INLINE) { - opline = op_array->opcodes + (ssa->cfg.blocks[b].start - 1); if ((ssa->cfg.blocks[b].flags & ZEND_BB_FOLLOW) - && (opline->opcode == ZEND_NOP - || opline->opcode == ZEND_SWITCH_LONG - || opline->opcode == ZEND_SWITCH_STRING)) { + && ssa->cfg.blocks[b].start != 0 + && (op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_NOP + || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_SWITCH_LONG + || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_SWITCH_STRING)) { if (!zend_jit_reset_opline(&dasm_state, op_array->opcodes + ssa->cfg.blocks[b].start) || !zend_jit_set_valid_ip(&dasm_state, op_array->opcodes + ssa->cfg.blocks[b].start)) { goto jit_failure; -- 2.40.0