mirror of
https://github.com/neovim/neovim.git
synced 2025-10-16 23:06:14 +00:00
vim-patch:9.0.0060: accessing uninitialized memory when completing long line
Problem: Accessing uninitialized memory when completing long line.
Solution: Terminate string with NUL.
b9e717367c
This commit is contained in:
@@ -582,6 +582,7 @@ static char_u *ins_compl_infercase_gettext(char_u *str, int char_len, int compl_
|
||||
// getting to six bytes from the edge of IObuff switch to using a
|
||||
// growarray. Add the character in the next round.
|
||||
ga_grow(&gap, IOSIZE);
|
||||
*p = NUL;
|
||||
STRCPY(gap.ga_data, IObuff);
|
||||
gap.ga_len = (int)STRLEN(IObuff);
|
||||
} else {
|
||||
|
@@ -965,6 +965,13 @@ func Test_infercase_very_long_line()
|
||||
exe "normal 2Go\<C-X>\<C-L>\<Esc>"
|
||||
call assert_equal(longLine, getline(3))
|
||||
|
||||
" check that the too long text is NUL terminated
|
||||
%del
|
||||
norm o
|
||||
norm 1987ax
|
||||
exec "norm ox\<C-X>\<C-L>"
|
||||
call assert_equal(repeat('x', 1987), getline(3))
|
||||
|
||||
bwipe!
|
||||
set noic noinfercase
|
||||
endfunc
|
||||
|
Reference in New Issue
Block a user