diff options
Diffstat (limited to 'abs/extra/community/lua')
-rw-r--r-- | abs/extra/community/lua/lua-5.1.3-official-patch3.diff | 21 | ||||
-rw-r--r-- | abs/extra/community/lua/lua-5.1.3-official-patch4.diff | 18 |
2 files changed, 0 insertions, 39 deletions
diff --git a/abs/extra/community/lua/lua-5.1.3-official-patch3.diff b/abs/extra/community/lua/lua-5.1.3-official-patch3.diff deleted file mode 100644 index 8126ff5..0000000 --- a/abs/extra/community/lua/lua-5.1.3-official-patch3.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- src/lapi.c (old) -+++ src/lapi.c (new) -@@ -93,15 +93,14 @@ - - - LUA_API int lua_checkstack (lua_State *L, int size) { -- int res; -+ int res = 1; - lua_lock(L); -- if ((L->top - L->base + size) > LUAI_MAXCSTACK) -+ if (size > LUAI_MAXCSTACK || (L->top - L->base + size) > LUAI_MAXCSTACK) - res = 0; /* stack overflow */ -- else { -+ else if (size > 0) { - luaD_checkstack(L, size); - if (L->ci->top < L->top + size) - L->ci->top = L->top + size; -- res = 1; - } - lua_unlock(L); - return res; diff --git a/abs/extra/community/lua/lua-5.1.3-official-patch4.diff b/abs/extra/community/lua/lua-5.1.3-official-patch4.diff deleted file mode 100644 index 1d03f37..0000000 --- a/abs/extra/community/lua/lua-5.1.3-official-patch4.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- src/lbaselib.c (old) -+++ src/lbaselib.c (new) -@@ -344,10 +344,12 @@ - luaL_checktype(L, 1, LUA_TTABLE); - i = luaL_optint(L, 2, 1); - e = luaL_opt(L, luaL_checkint, 3, luaL_getn(L, 1)); -+ if (i > e) return 0; /* empty range */ - n = e - i + 1; /* number of elements */ -- if (n <= 0) return 0; /* empty range */ -- luaL_checkstack(L, n, "table too big to unpack"); -- for (; i<=e; i++) /* push arg[i...e] */ -+ if (n <= 0 || !lua_checkstack(L, n)) /* n <= 0 means arith. overflow */ -+ return luaL_error(L, "too many results to unpack"); -+ lua_rawgeti(L, 1, i); /* push arg[i] (avoiding overflow problems) */ -+ while (i++ < e) /* push arg[i + 1...e] */ - lua_rawgeti(L, 1, i); - return n; - } |