From 9f0c0fe0de64bc41efea73a2da881ff0a1036a03 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 10 Sep 2024 11:34:42 -0300 Subject: Bug: Wrong limit for local variables in 16-bit systems USHRT_MAX does not fit in an 'int' in 16-bit systems. --- lparser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lparser.c') diff --git a/lparser.c b/lparser.c index 2b888c7c..aebddaf7 100644 --- a/lparser.c +++ b/lparser.c @@ -198,7 +198,7 @@ static int new_localvar (LexState *ls, TString *name) { checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal, MAXVARS, "local variables"); luaM_growvector(L, dyd->actvar.arr, dyd->actvar.n + 1, - dyd->actvar.size, Vardesc, USHRT_MAX, "local variables"); + dyd->actvar.size, Vardesc, SHRT_MAX, "local variables"); var = &dyd->actvar.arr[dyd->actvar.n++]; var->vd.kind = VDKREG; /* default */ var->vd.name = name; -- cgit v1.2.3-55-g6feb