Avoid out-of-range PC for stack overflow error from snapshot restore.
Reported by Sergey Kaplun. #1369
This commit is contained in:
@@ -101,6 +101,7 @@ static BCPos debug_framepc(lua_State *L, GCfunc *fn, cTValue *nextframe)
|
|||||||
pt = funcproto(fn);
|
pt = funcproto(fn);
|
||||||
pos = proto_bcpos(pt, ins) - 1;
|
pos = proto_bcpos(pt, ins) - 1;
|
||||||
#if LJ_HASJIT
|
#if LJ_HASJIT
|
||||||
|
if (pos == NO_BCPOS) return 1; /* Pretend it's the first bytecode. */
|
||||||
if (pos > pt->sizebc) { /* Undo the effects of lj_trace_exit for JLOOP. */
|
if (pos > pt->sizebc) { /* Undo the effects of lj_trace_exit for JLOOP. */
|
||||||
if (bc_isret(bc_op(ins[-1]))) {
|
if (bc_isret(bc_op(ins[-1]))) {
|
||||||
GCtrace *T = (GCtrace *)((char *)(ins-1) - offsetof(GCtrace, startins));
|
GCtrace *T = (GCtrace *)((char *)(ins-1) - offsetof(GCtrace, startins));
|
||||||
|
|||||||
Reference in New Issue
Block a user