From: Mike Pall Date: Sun, 10 Mar 2024 16:23:21 +0000 (+0100) Subject: Prevent down-recursion for side traces. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cae361187e7e1e3545353fb560c032cdace32d5f;p=thirdparty%2FLuaJIT.git Prevent down-recursion for side traces. Thanks to Sergey Kaplun. #1169 --- diff --git a/src/lj_record.c b/src/lj_record.c index 35e6d6e1..f2a06f41 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -728,7 +728,7 @@ void lj_record_ret(jit_State *J, BCReg rbase, ptrdiff_t gotresults) if ((pt->flags & PROTO_NOJIT)) lj_trace_err(J, LJ_TRERR_CJITOFF); if (J->framedepth == 0 && J->pt && frame == J->L->base - 1) { - if (check_downrec_unroll(J, pt)) { + if (!J->cur.root && check_downrec_unroll(J, pt)) { J->maxslot = (BCReg)(rbase + gotresults); lj_snap_purge(J); rec_stop(J, LJ_TRLINK_DOWNREC, J->cur.traceno); /* Down-recursion. */