summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2015-07-04 13:32:34 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2015-07-04 13:32:34 -0300
commit8950e0c049cc51025d501453b85f501b15c5317a (patch)
tree6449a25bf4e2a94ead1b25b176a25e6454a41917
parent8217e0d4fe4cf80c52328230614ab41cf32f4afe (diff)
downloadlua-8950e0c049cc51025d501453b85f501b15c5317a.tar.gz
lua-8950e0c049cc51025d501453b85f501b15c5317a.tar.bz2
lua-8950e0c049cc51025d501453b85f501b15c5317a.zip
avoid possibility of subtle arith. overflow
-rw-r--r--ltable.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ltable.c b/ltable.c
index 2e55f760..8a345062 100644
--- a/ltable.c
+++ b/ltable.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltable.c,v 2.111 2015/06/09 14:21:13 roberto Exp roberto $ 2** $Id: ltable.c,v 2.112 2015/07/01 17:46:55 roberto Exp roberto $
3** Lua tables (hash) 3** Lua tables (hash)
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -501,7 +501,7 @@ TValue *luaH_newkey (lua_State *L, Table *t, const TValue *key) {
501*/ 501*/
502const TValue *luaH_getint (Table *t, lua_Integer key) { 502const TValue *luaH_getint (Table *t, lua_Integer key) {
503 /* (1 <= key && key <= t->sizearray) */ 503 /* (1 <= key && key <= t->sizearray) */
504 if (l_castS2U(key - 1) < t->sizearray) 504 if (l_castS2U(key) - 1 < t->sizearray)
505 return &t->array[key - 1]; 505 return &t->array[key - 1];
506 else { 506 else {
507 Node *n = hashint(t, key); 507 Node *n = hashint(t, key);