diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-07-18 16:18:30 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-07-18 16:18:30 -0300 |
commit | 303f4155593721dfd57dadc6e56122e465ce9efb (patch) | |
tree | 2b723c2d744a53f96b0f067e5a39a15a7f9259ad /ltable.h | |
parent | ccb8b307f11c7497e61f617b12f3a7f0a697256c (diff) | |
download | lua-303f4155593721dfd57dadc6e56122e465ce9efb.tar.gz lua-303f4155593721dfd57dadc6e56122e465ce9efb.tar.bz2 lua-303f4155593721dfd57dadc6e56122e465ce9efb.zip |
Randomness added to table length computation
A bad actor could fill only a few entries in a table (power of twos in
decreasing order, see tests) and produce a small table with a huge
length. If your program builds a table with external data and iterates
over its length, this behavior could be an issue.
Diffstat (limited to 'ltable.h')
-rw-r--r-- | ltable.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -173,7 +173,7 @@ LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, unsigned nasize); | |||
173 | LUAI_FUNC lu_mem luaH_size (Table *t); | 173 | LUAI_FUNC lu_mem luaH_size (Table *t); |
174 | LUAI_FUNC void luaH_free (lua_State *L, Table *t); | 174 | LUAI_FUNC void luaH_free (lua_State *L, Table *t); |
175 | LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); | 175 | LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); |
176 | LUAI_FUNC lua_Unsigned luaH_getn (Table *t); | 176 | LUAI_FUNC lua_Unsigned luaH_getn (lua_State *L, Table *t); |
177 | 177 | ||
178 | 178 | ||
179 | #if defined(LUA_DEBUG) | 179 | #if defined(LUA_DEBUG) |