aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-08-27 14:58:02 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-08-27 14:58:02 -0300
commit934fdd481ced3a9d4a7aaace4479ce889ab23582 (patch)
tree2e136fa443b16ffe42a17066b1ede97b0741716b
parent9ac9d23f4164fc7e1eeea8a3e8d4e453dade51ab (diff)
downloadlua-v5.4.tar.gz
lua-v5.4.tar.bz2
lua-v5.4.zip
Bug: Constructors with nils can overflow countersv5.4
-rw-r--r--lparser.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lparser.c b/lparser.c
index 1ac82990..f4bfc963 100644
--- a/lparser.c
+++ b/lparser.c
@@ -940,6 +940,8 @@ static void constructor (LexState *ls, expdesc *t) {
940 if (ls->t.token == '}') break; 940 if (ls->t.token == '}') break;
941 closelistfield(fs, &cc); 941 closelistfield(fs, &cc);
942 field(ls, &cc); 942 field(ls, &cc);
943 checklimit(fs, cc.tostore + cc.na + cc.nh, INT_MAX/2,
944 "items in a constructor");
943 } while (testnext(ls, ',') || testnext(ls, ';')); 945 } while (testnext(ls, ',') || testnext(ls, ';'));
944 check_match(ls, '}', '{', line); 946 check_match(ls, '}', '{', line);
945 lastlistfield(fs, &cc); 947 lastlistfield(fs, &cc);