aboutsummaryrefslogtreecommitdiff
path: root/testes
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-03-13 15:42:39 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-03-13 15:42:39 -0300
commit983bc433e6a60cbc4fe3a16f1d4713bacb8e3509 (patch)
tree48e7e1349f29de673d5f78a9e0d55b369780c911 /testes
parent25da574fcbb68bf507431a6091ab73ac434c9428 (diff)
downloadlua-983bc433e6a60cbc4fe3a16f1d4713bacb8e3509.tar.gz
lua-983bc433e6a60cbc4fe3a16f1d4713bacb8e3509.tar.bz2
lua-983bc433e6a60cbc4fe3a16f1d4713bacb8e3509.zip
Bug: Use after free in 'luaV_finishset'
If a metatable is a weak table, its __newindex field could be collected by an emergency collection while being used in 'luaV_finishset'. (This bug has similarities with bug 5.3.2-1, fixed in commit a272fa66.)
Diffstat (limited to 'testes')
-rw-r--r--testes/events.lua13
1 files changed, 13 insertions, 0 deletions
diff --git a/testes/events.lua b/testes/events.lua
index 8d8563b9..def13dc8 100644
--- a/testes/events.lua
+++ b/testes/events.lua
@@ -370,6 +370,19 @@ x = 0 .."a".."b"..c..d.."e".."f".."g"
370assert(x.val == "0abcdefg") 370assert(x.val == "0abcdefg")
371 371
372 372
373do
374 -- bug since 5.4.1
375 local mt = setmetatable({__newindex={}}, {__mode='v'})
376 local t = setmetatable({}, mt)
377
378 if T then T.allocfailnext() end
379
380 -- seg. fault
381 for i=1, 10 do t[i] = 1 end
382end
383
384
385
373-- concat metamethod x numbers (bug in 5.1.1) 386-- concat metamethod x numbers (bug in 5.1.1)
374c = {} 387c = {}
375local x 388local x