0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.3234: crash when printing long string with Lua

Problem:    Crash when printing long string with Lua.
Solution:   Remove lua_pop(). (Martin Tournoij, closes #8648)
This commit is contained in:
Bram Moolenaar 2021-07-28 15:07:01 +02:00
parent e2390c7f32
commit 78e006b9b0
3 changed files with 22 additions and 2 deletions

View File

@ -1734,9 +1734,9 @@ luaV_print(lua_State *L)
s = lua_tolstring(L, -1, &l);
if (s == NULL)
return luaL_error(L, "cannot convert to string");
if (i > 1) luaL_addchar(&b, ' '); // use space instead of tab
if (i > 1)
luaL_addchar(&b, ' '); // use space instead of tab
luaV_addlstring(&b, s, l, 0);
lua_pop(L, 1);
}
luaL_pushresult(&b);
if (!got_int)

View File

@ -850,6 +850,24 @@ func Test_luafile_error()
bwipe!
endfunc
" Test :luafile printing a long string
func Test_luafile_print()
new Xlua_file
let lines =<< trim END
local data = ''
for i = 1, 130 do
data = data .. 'xxxxx asd as as dad sad sad xz cxz czxcxzczxc ad ad asd asd asd asd asd'
end
print(data)
END
call setline(1, lines)
w
luafile %
call delete('Xlua_file')
bwipe!
endfunc
" Test for dealing with strings containing newlines and null character
func Test_lua_string_with_newline()
let x = execute('lua print("Hello\nWorld")')

View File

@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3234,
/**/
3233,
/**/