mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Correct fix for stack check when recording BC_VARG.
Reported by Yichun Zhang.
This commit is contained in:
parent
cc96ab9d51
commit
b2791179ef
@ -1522,6 +1522,8 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
|
||||
} else if (dst + nresults > J->maxslot) {
|
||||
J->maxslot = dst + (BCReg)nresults;
|
||||
}
|
||||
if (J->baseslot + J->maxslot >= LJ_MAX_JSLOTS)
|
||||
lj_trace_err(J, LJ_TRERR_STACKOV);
|
||||
for (i = 0; i < nresults; i++)
|
||||
J->base[dst+i] = i < nvararg ? getslot(J, i - nvararg - 1) : TREF_NIL;
|
||||
} else { /* Unknown number of varargs passed to trace. */
|
||||
@ -1602,8 +1604,6 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
|
||||
lj_trace_err_info(J, LJ_TRERR_NYIBC);
|
||||
}
|
||||
}
|
||||
if (J->baseslot + J->maxslot >= LJ_MAX_JSLOTS)
|
||||
lj_trace_err(J, LJ_TRERR_STACKOV);
|
||||
}
|
||||
|
||||
/* -- Record allocations -------------------------------------------------- */
|
||||
|
Loading…
Reference in New Issue
Block a user