<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lua/lvm.c, branch v5.4.9</title>
<subtitle>A mirror of https://github.com/lua/lua
</subtitle>
<id>https://git.lua4.win/lua/atom?h=v5.4.9</id>
<link rel='self' href='https://git.lua4.win/lua/atom?h=v5.4.9'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/'/>
<updated>2026-07-13T18:55:36+00:00</updated>
<entry>
<title>Bug: Issues with write barrier for __newindex</title>
<updated>2026-07-13T18:55:36+00:00</updated>
<author>
<name>Roberto I</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2026-07-13T18:55:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=0f781f836ab348716eb9232d3831a871b9821a3c'/>
<id>urn:sha1:0f781f836ab348716eb9232d3831a871b9821a3c</id>
<content type='text'>
In 'luaV_finishset', there is an update on a table that is a field on
another table. If the first table is the same as the one with the field
(e.g., after 't.__newindex = t'), the update can change the value on
that field (if the field being updated is '__newindex' itself). After
that, the barrier is called with the table stored in that field, which
is not the correct table anymore.
</content>
</entry>
<entry>
<title>Bug: Use after free in 'luaV_finishset'</title>
<updated>2025-03-13T18:42:39+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2025-03-13T18:42:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=983bc433e6a60cbc4fe3a16f1d4713bacb8e3509'/>
<id>urn:sha1:983bc433e6a60cbc4fe3a16f1d4713bacb8e3509</id>
<content type='text'>
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.)
</content>
</entry>
<entry>
<title>Towards release 5.4.7</title>
<updated>2024-04-26T17:55:18+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2024-04-26T17:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=de794a6527058e75b674118b35f39dcbb13e88b1'/>
<id>urn:sha1:de794a6527058e75b674118b35f39dcbb13e88b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bug: Buffer overflow in string concatenation</title>
<updated>2023-12-21T16:37:51+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-12-21T16:37:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=5853c37a83ec66ccb45094f9aeac23dfdbcde671'/>
<id>urn:sha1:5853c37a83ec66ccb45094f9aeac23dfdbcde671</id>
<content type='text'>
Even if the string fits in size_t, the whole size of the TString object
can overflow when we add the header.
</content>
</entry>
<entry>
<title>More disciplined use of 'getstr' and 'tsslen'</title>
<updated>2023-08-17T18:59:28+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-08-17T18:59:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=9b4f39ab14fb2e55345c3d23537d129dac23b091'/>
<id>urn:sha1:9b4f39ab14fb2e55345c3d23537d129dac23b091</id>
<content type='text'>
We may want to add other string variants in the future; this change
documents better where the code may need to handle those variants.
</content>
</entry>
<entry>
<title>Bug: Call hook may be called twice when count hook yields</title>
<updated>2023-07-25T19:50:44+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-07-25T19:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=1b3f507f620d996ffb69da7476a19251acfb89ca'/>
<id>urn:sha1:1b3f507f620d996ffb69da7476a19251acfb89ca</id>
<content type='text'>
Took the opportunity and moved the code that controls call hooks
in 'luaV_execute' into a function.
</content>
</entry>
<entry>
<title>Bug: read overflow in 'l_strcmp'</title>
<updated>2023-06-14T17:38:07+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-06-14T17:38:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=f623b969325be736297bc1dff48e763c08778243'/>
<id>urn:sha1:f623b969325be736297bc1dff48e763c08778243</id>
<content type='text'>
Equality according to 'strcoll' does not imply that strings have
the same length.
</content>
</entry>
<entry>
<title>Details</title>
<updated>2023-05-15T13:07:25+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-05-15T13:07:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=934e77a286aeb97ca02badf56956ccc78217e9d0'/>
<id>urn:sha1:934e77a286aeb97ca02badf56956ccc78217e9d0</id>
<content type='text'>
- Better comments about short strings in opcodes.
- luaH_newkey made static.
</content>
</entry>
<entry>
<title>Bug: Wrong line in error message for arith. errors</title>
<updated>2023-02-08T17:15:41+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2023-02-08T17:15:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=02bab9fc258fe1cbc6088b1bd61193499d058eff'/>
<id>urn:sha1:02bab9fc258fe1cbc6088b1bd61193499d058eff</id>
<content type='text'>
It also causes 'L-&gt;top' to be wrong when the error happens,
triggering an 'assert'.
</content>
</entry>
<entry>
<title>Stack indices changed to union's</title>
<updated>2022-10-29T15:06:37+00:00</updated>
<author>
<name>Roberto Ierusalimschy</name>
<email>roberto@inf.puc-rio.br</email>
</author>
<published>2022-10-29T15:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/lua/commit/?id=413a393e6222482f46599e138bebac162610a572'/>
<id>urn:sha1:413a393e6222482f46599e138bebac162610a572</id>
<content type='text'>
That will allow to change pointers to offsets while reallocating
the stack.
</content>
</entry>
</feed>
