mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
vim-patch:8.2.1095: may use pointer after freeing it
Problem: May use pointer after freeing it when text properties are used.
Solution: Update redo buffer before calling ml_replace().
6b949615ed
This commit is contained in:
parent
f01bb307fd
commit
e84c075ad9
@ -2930,8 +2930,6 @@ void spell_suggest(int count)
|
||||
memmove(p, line, c);
|
||||
STRCPY(p + c, stp->st_word);
|
||||
STRCAT(p, sug.su_badptr + stp->st_orglen);
|
||||
ml_replace(curwin->w_cursor.lnum, p, false);
|
||||
curwin->w_cursor.col = c;
|
||||
|
||||
// For redo we use a change-word command.
|
||||
ResetRedobuff();
|
||||
@ -2940,7 +2938,10 @@ void spell_suggest(int count)
|
||||
stp->st_wordlen + sug.su_badlen - stp->st_orglen);
|
||||
AppendCharToRedobuff(ESC);
|
||||
|
||||
// After this "p" may be invalid.
|
||||
// "p" may be freed here
|
||||
ml_replace(curwin->w_cursor.lnum, p, false);
|
||||
curwin->w_cursor.col = c;
|
||||
|
||||
changed_bytes(curwin->w_cursor.lnum, c);
|
||||
} else
|
||||
curwin->w_cursor = prev_cursor;
|
||||
|
Loading…
Reference in New Issue
Block a user