diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2015-07-04 13:32:34 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2015-07-04 13:32:34 -0300 |
commit | 8950e0c049cc51025d501453b85f501b15c5317a (patch) | |
tree | 6449a25bf4e2a94ead1b25b176a25e6454a41917 /ltable.c | |
parent | 8217e0d4fe4cf80c52328230614ab41cf32f4afe (diff) | |
download | lua-github-8950e0c049cc51025d501453b85f501b15c5317a.tar.gz |
avoid possibility of subtle arith. overflow
Diffstat (limited to 'ltable.c')
-rw-r--r-- | ltable.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1,5 +1,5 @@ /* -** $Id: ltable.c,v 2.111 2015/06/09 14:21:13 roberto Exp roberto $ +** $Id: ltable.c,v 2.112 2015/07/01 17:46:55 roberto Exp roberto $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -501,7 +501,7 @@ TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key) { */ const TValue *luaH_getint (Table *t, lua_Integer key) { /* (1 <= key && key <= t->sizearray) */ - if (l_castS2U(key - 1) < t->sizearray) + if (l_castS2U(key) - 1 < t->sizearray) return &t->array[key - 1]; else { Node *n = hashint(t, key); |