summaryrefslogtreecommitdiff
path: root/src/lj_trace.c
diff options
context:
space:
mode:
authorMike Pall <mike>2020-08-09 18:08:38 +0200
committerMike Pall <mike>2020-08-09 18:08:38 +0200
commit12ab596997b9cb27846a5b254d11230c3f9c50c8 (patch)
tree2fe4eba1519d2046bc97c08274ed0ce8cdcff7a2 /src/lj_trace.c
parent2211f6f960b65d200a3142798cf86576405c24cb (diff)
downloadluajit2-12ab596997b9cb27846a5b254d11230c3f9c50c8.tar.gz
Fix handling of errors during snapshot restore.
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r--src/lj_trace.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c
index 311baa73..123e6eb8 100644
--- a/src/lj_trace.c
+++ b/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;