IBM AS400 (OS400) has sizeof(void *)==16, and a `%p' may generate

up to 60 characters in a `printf'. That causes a buffer overflow in
`tostring'..
This commit is contained in:
Roberto Ierusalimschy 2003-08-29 13:50:02 -03:00
parent 0ff1596476
commit 994a37c8e8
1 changed files with 26 additions and 2 deletions

28
bugs
View File

@ -445,13 +445,13 @@ for i=1,10000000 do
end end
]], ]],
patch = [[ patch = [[
*lgc.h: * lgc.h:
18c18 18c18
< void luaC_separateudata (lua_State *L); < void luaC_separateudata (lua_State *L);
--- ---
> size_t luaC_separateudata (lua_State *L); > size_t luaC_separateudata (lua_State *L);
*lgc.c: * lgc.c:
113c113,114 113c113,114
< void luaC_separateudata (lua_State *L) { < void luaC_separateudata (lua_State *L) {
--- ---
@ -489,4 +489,28 @@ patch = [[
--- ---
> checkSizes(L, deadmem); > checkSizes(L, deadmem);
]] ]]
}
Bug{
what=[[IBM AS400 (OS400) has sizeof(void *)==16, and a `%p' may generate
up to 60 characters in a `printf'. That causes a buffer overflow in
`tostring'.]],
report = [[David Burgess, 25/08/2003]],
example = [[print{}; (in an AS400 machine)]],
patch = [[
* liolib.c:
178c178
< char buff[32];
---
> char buff[128];
* lbaselib.c:
327c327
< char buff[64];
---
> char buff[128];
]]
}