patch 8.2.3582: reading uninitialized memory when giving spell suggestions

Problem:    Reading uninitialized memory when giving spell suggestions.
Solution:   Check that preword is not empty.
This commit is contained in:
Bram Moolenaar
2021-11-04 15:46:05 +00:00
parent 0b5b06cb47
commit 15d9890eee
3 changed files with 11 additions and 1 deletions

View File

@ -1619,7 +1619,7 @@ suggest_trie_walk(
// char, e.g., "thes," -> "these".
p = fword + sp->ts_fidx;
MB_PTR_BACK(fword, p);
if (!spell_iswordp(p, curwin))
if (!spell_iswordp(p, curwin) && *preword != NUL)
{
p = preword + STRLEN(preword);
MB_PTR_BACK(preword, p);

View File

@ -839,6 +839,14 @@ func Test_spell_screendump()
call delete('XtestSpell')
endfunc
func Test_spell_single_word()
new
silent! norm 0R00
spell! <20><>
silent 0norm 0r$ Dvz=
bwipe!
endfunc
let g:test_data_aff1 = [
\"SET ISO8859-1",
\"TRY esianrtolcdugmphbyfvkwjkqxz-\xEB\xE9\xE8\xEA\xEF\xEE\xE4\xE0\xE2\xF6\xFC\xFB'ESIANRTOLCDUGMPHBYFVKWJKQXZ",

View File

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