浏览代码

Fix handling of errors during snapshot restore.

Mike Pall 5 年之前
父节点
当前提交
12ab596997
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      src/lj_trace.c

+ 2 - 0
src/lj_trace.c

@@ -701,6 +701,8 @@ static TValue *trace_exit_cp(lua_State *L, lua_CFunction dummy, void *ud)
 {
   ExitDataCP *exd = (ExitDataCP *)ud;
   cframe_errfunc(L->cframe) = -1;  /* Inherit error function. */
+  /* Always catch error here. */
+  cframe_nres(L->cframe) = -2*LUAI_MAXSTACK*(int)sizeof(TValue);
   exd->pc = lj_snap_restore(exd->J, exd->exptr);
   UNUSED(dummy);
   return NULL;