diff options
author | Mike Pall <mike> | 2024-02-04 16:34:30 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2024-02-04 16:34:30 +0100 |
commit | defe61a56751a0db5f00ff3ab7b8f45436ba74c8 (patch) | |
tree | c9415344aea204341e4c2620d06e624c0209ce67 /src/lj_debug.c | |
parent | 9cdd5a9479d2265f42dfefc17d068174969bbcff (diff) | |
download | luajit-defe61a56751a0db5f00ff3ab7b8f45436ba74c8.tar.gz luajit-defe61a56751a0db5f00ff3ab7b8f45436ba74c8.tar.bz2 luajit-defe61a56751a0db5f00ff3ab7b8f45436ba74c8.zip |
Rework stack overflow handling.
Reported by pwnhacker0x18. Fixed by Peter Cawley. #1152
Diffstat (limited to 'src/lj_debug.c')
-rw-r--r-- | src/lj_debug.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_debug.c b/src/lj_debug.c index e6a8be54..bca1d7a5 100644 --- a/src/lj_debug.c +++ b/src/lj_debug.c | |||
@@ -63,6 +63,7 @@ static BCPos debug_framepc(lua_State *L, GCfunc *fn, cTValue *nextframe) | |||
63 | if (cf == NULL || (char *)cframe_pc(cf) == (char *)cframe_L(cf)) | 63 | if (cf == NULL || (char *)cframe_pc(cf) == (char *)cframe_L(cf)) |
64 | return NO_BCPOS; | 64 | return NO_BCPOS; |
65 | ins = cframe_pc(cf); /* Only happens during error/hook handling. */ | 65 | ins = cframe_pc(cf); /* Only happens during error/hook handling. */ |
66 | if (!ins) return NO_BCPOS; | ||
66 | } else { | 67 | } else { |
67 | if (frame_islua(nextframe)) { | 68 | if (frame_islua(nextframe)) { |
68 | ins = frame_pc(nextframe); | 69 | ins = frame_pc(nextframe); |