diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-11-01 12:00:54 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2023-11-01 12:00:54 -0300 |
commit | 7923dbbf72da303ca1cca17efd24725668992f15 (patch) | |
tree | 432b2455f3bbba12f53dc483e4479189782aac3b /testes | |
parent | 81e4fce5303fdb274bc5572fb168dd766fb8208e (diff) | |
download | lua-7923dbbf72da303ca1cca17efd24725668992f15.tar.gz lua-7923dbbf72da303ca1cca17efd24725668992f15.tar.bz2 lua-7923dbbf72da303ca1cca17efd24725668992f15.zip |
Bug: Recursion in 'getobjname' can stack overflow
'getobjname' now broken in two, a basic version that handles locals,
upvalues, and constants, and a full version, which uses the basic
version to handle table accesses (globals and fields).
Diffstat (limited to '')
-rw-r--r-- | testes/errors.lua | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/testes/errors.lua b/testes/errors.lua index b777a329..01cfe906 100644 --- a/testes/errors.lua +++ b/testes/errors.lua | |||
@@ -121,6 +121,9 @@ assert(not string.find(doit"aaa={13}; local bbbb=1; aaa[bbbb](3)", "'bbbb'")) | |||
121 | checkmessage("aaa={13}; local bbbb=1; aaa[bbbb](3)", "number") | 121 | checkmessage("aaa={13}; local bbbb=1; aaa[bbbb](3)", "number") |
122 | checkmessage("aaa=(1)..{}", "a table value") | 122 | checkmessage("aaa=(1)..{}", "a table value") |
123 | 123 | ||
124 | -- bug in 5.4.6 | ||
125 | checkmessage("a = {_ENV = {}}; print(a._ENV.x + 1)", "field 'x'") | ||
126 | |||
124 | _G.aaa, _G.bbbb = nil | 127 | _G.aaa, _G.bbbb = nil |
125 | 128 | ||
126 | -- calls | 129 | -- calls |