At least on macOS, `strlen(getenv("TMPDIR"))` is 50. We now allow a /tmp
that takes up to 120 or so bytes to spell. Instead of overflowing, we do
a bounds check and the function fails successfully on even longer /tmps.
Fixes#1108 (os.tmpname crashes redbean)
DESCRIPTION
Lua is a language designed for embedded use in native applications. It
has an impossibly elegant C API and the Lua language itself feels more
like Python compared to alternatives like Tcl except it's a great deal
faster and doesn't have strong opinions about character encoding.
PROVENANCE
https://github.com/lua/lua/
commit e7803f7dbcdc966ab1f9db143424ee811ab1a398
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed Mar 3 09:44:20 2021 -0300
New release number (5.4.3)
luac.c needed to be sourced from:
https://www.lua.org/ftp/lua-5.4.3.tar.gz
LOCAL MODIFICATIONS
Lua now uses a bestline REPL with bash-style code completion.
Integer literals such as `033` will now be interpreted as octal.
Integer literals such as `0b10` will now be interpreted as binary.
The `\e` string literal escape sequence has been added, which is
equivalent to `\27` (the Lua version of `\033`) or the ASCII ESC
character. It may be used for teletypewriter control like having
bold text, which can be encoded elegantly as `\e[1mHELLO\e[0m`.
Added luaL_traceback2() for function parameters in traceback.
Added Python-like printf modulus operator for strings.
Added Python-like printf multiply operator for strings.
Fixed a buffer overflow in os.tmpname