]> granicus.if.org Git - php/commitdiff
Missed opline guard
authorDmitry Stogov <dmitry@zend.com>
Mon, 28 Sep 2020 11:47:45 +0000 (14:47 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 28 Sep 2020 11:47:45 +0000 (14:47 +0300)
ext/opcache/jit/zend_jit_trace.c

index f7f232f70821cc626a52272851a46c024e4d4a11..9cfbcb0cf35be5fbb991a1716da3d66451435fb4 100644 (file)
@@ -5329,7 +5329,8 @@ done:
                                         && (p->op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0
                                         && ((p+1)->op == ZEND_JIT_TRACE_VM
                                          || (p+1)->op == ZEND_JIT_TRACE_END)
-                                        && TRACE_FRAME_NUM_ARGS(call) < p->op_array->num_args
+                                        && (TRACE_FRAME_NUM_ARGS(call) < 0
+                                         || TRACE_FRAME_NUM_ARGS(call) < p->op_array->num_args)
                                         && !zend_jit_trace_opline_guard(&dasm_state, (p+1)->opline)) {
                                                goto jit_failure;
                                        }