aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ffrecord.c
diff options
context:
space:
mode:
authorMike Pall <mike>2021-07-19 17:03:16 +0200
committerMike Pall <mike>2021-07-19 17:03:16 +0200
commit6ca580155b035fd369f193cdee59391b594a5028 (patch)
tree37e72019d7cb5d63abc73c9e1e3c7021267f0569 /src/lj_ffrecord.c
parent44bd7437a27e0d19bcf878c20ad27a673f17f40b (diff)
downloadluajit-6ca580155b035fd369f193cdee59391b594a5028.tar.gz
luajit-6ca580155b035fd369f193cdee59391b594a5028.tar.bz2
luajit-6ca580155b035fd369f193cdee59391b594a5028.zip
Avoid out-of-range number of results when compiling select(k, ...).
The interpreter will throw and abort the trace, anyway.
Diffstat (limited to 'src/lj_ffrecord.c')
-rw-r--r--src/lj_ffrecord.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c
index ff6ecc51..9405e694 100644
--- a/src/lj_ffrecord.c
+++ b/src/lj_ffrecord.c
@@ -256,9 +256,9 @@ static void LJ_FASTCALL recff_select(jit_State *J, RecordFFData *rd)
256 ptrdiff_t n = (ptrdiff_t)J->maxslot; 256 ptrdiff_t n = (ptrdiff_t)J->maxslot;
257 if (start < 0) start += n; 257 if (start < 0) start += n;
258 else if (start > n) start = n; 258 else if (start > n) start = n;
259 rd->nres = n - start;
260 if (start >= 1) { 259 if (start >= 1) {
261 ptrdiff_t i; 260 ptrdiff_t i;
261 rd->nres = n - start;
262 for (i = 0; i < n - start; i++) 262 for (i = 0; i < n - start; i++)
263 J->base[i] = J->base[start+i]; 263 J->base[i] = J->base[start+i];
264 } /* else: Interpreter will throw. */ 264 } /* else: Interpreter will throw. */