<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luasocket/CHANGELOG.md, branch docs/pre-release-audit</title>
<subtitle>A mirror of https://github.com/lunarmodules/luasocket.git
</subtitle>
<id>https://git.lua4.win/luasocket/atom?h=docs%2Fpre-release-audit</id>
<link rel='self' href='https://git.lua4.win/luasocket/atom?h=docs%2Fpre-release-audit'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/'/>
<updated>2026-08-31T15:21:20+00:00</updated>
<entry>
<title>Add Lua 5.5 support (#473)</title>
<updated>2026-08-31T15:21:20+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T15:21:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=fa9b35a0cf11bc856cbd8bffbef5ad6fb3e62a93'/>
<id>urn:sha1:fa9b35a0cf11bc856cbd8bffbef5ad6fb3e62a93</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(docs): Backfill changelog entries for merged PRs and assorted commits</title>
<updated>2026-08-31T10:07:56+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T10:05:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=eb47ded0023257b1b5b29314dd1b584e44455a01'/>
<id>urn:sha1:eb47ded0023257b1b5b29314dd1b584e44455a01</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(http/ftp/smtp): implement max size checks</title>
<updated>2026-08-29T15:42:13+00:00</updated>
<author>
<name>Thijs Schreijer</name>
<email>thijs.schreijer@bookingexperts.com</email>
</author>
<published>2026-08-10T15:11:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=c84e79f6d1ae735bfa191694ec6a62eb8231166d'/>
<id>urn:sha1:c84e79f6d1ae735bfa191694ec6a62eb8231166d</id>
<content type='text'>
fixes unbounded reads when using the "*l" pattern. Typically on
headers and other control lines.
</content>
</entry>
<entry>
<title>feat(receive): add maxsize argument to bound memory usage</title>
<updated>2026-07-30T20:06:04+00:00</updated>
<author>
<name>Thijs Schreijer</name>
<email>thijs@thijsschreijer.nl</email>
</author>
<published>2026-07-30T17:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=73b0780321acb14bab6707006f5136ea9998951d'/>
<id>urn:sha1:73b0780321acb14bab6707006f5136ea9998951d</id>
<content type='text'>
client:receive("*l") and receive("*a") are unbounded: a peer that never
sends a newline, or never closes, makes LuaSocket buffer until the
process runs out of memory (e.g. src/http.lua reading response headers
in a loop). Add an optional maxsize argument that caps the payload a
single call may accumulate, including prefix.

- Hoist all argument validation ahead of timeout_markstart() so bad
  calls (maxsize &lt; 1, #prefix &gt;= maxsize, numeric pattern &gt; maxsize)
  raise before any I/O and leave the socket untouched.
- recvline/recvall take a budget and return a new internal
  BUF_OVERSIZED code, surfaced to Lua as the "oversized" error
  alongside "timeout"/"closed", with the partial held in the 3rd
  return value.
- recvraw is left untouched: argument checks make the cap unreachable
  for numeric patterns.
- Preserve three invariants: a timeout partial is always shorter than
  maxsize (safe to retry as prefix), completion beats the cap for *a,
  and no bytes are lost or skipped on overflow.
- tcp.c, unixstream.c and serial.c all share this code path unchanged.

Adds test coverage (argument errors, *l/*a boundaries, timeout/close
at the cap, the drain idiom, numeric patterns, unix-stream mirror) and
documents the new argument, error, and recovery idioms in docs/tcp.html.
</content>
</entry>
<entry>
<title>chore: Release v3.1.0</title>
<updated>2022-07-27T07:07:00+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2022-07-27T07:06:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=95b7efa9da506ef968c1347edf3fc56370f0deed'/>
<id>urn:sha1:95b7efa9da506ef968c1347edf3fc56370f0deed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: Release v3.0.0</title>
<updated>2022-03-25T08:05:48+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2022-03-25T06:56:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=88c8a85cb6528232288ec590910b7a966aace52b'/>
<id>urn:sha1:88c8a85cb6528232288ec590910b7a966aace52b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: Draft v3 release notes</title>
<updated>2022-03-25T07:59:23+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2022-03-24T19:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=e8633157298eff538da3cb514cf2e2ad65f45d9c'/>
<id>urn:sha1:e8633157298eff538da3cb514cf2e2ad65f45d9c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: Refactor existing news file as a changelog</title>
<updated>2022-03-25T07:59:23+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2022-03-24T18:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=b5b60f9d6fd116c377475b3f7431e297ce0e553c'/>
<id>urn:sha1:b5b60f9d6fd116c377475b3f7431e297ce0e553c</id>
<content type='text'>
</content>
</entry>
</feed>
