From 05d67cf5660323ef139858b586977c7709ff8a4c Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Wed, 27 Jan 2010 01:57:15 +0100 Subject: [PATCH] Add missing check for return to lower frame. --- src/lj_record.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lj_record.c b/src/lj_record.c index 3f442088..c14a9e86 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -1510,12 +1510,13 @@ static void rec_ret(jit_State *J, BCReg rbase, int gotresults) J->tailcalled = 0; while (frame_ispcall(frame)) { BCReg cbase = (BCReg)frame_delta(frame); + if (J->framedepth-- <= 0) + lj_trace_err(J, LJ_TRERR_NYIRETL); lua_assert(J->baseslot > 1); J->baseslot -= (BCReg)cbase; J->base -= cbase; *--res = TREF_TRUE; /* Prepend true to results. */ gotresults++; - J->framedepth--; frame = frame_prevd(frame); } if (J->framedepth-- <= 0)