mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:9.0.1429: invalid memory access when ending insert mode (#22792)
Problem: Invalid memory access when ending insert mode.
Solution: Check if the insert_skip value is valid.
1a08a3e2a5
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
parent
2257ade3dc
commit
bad218cd64
@ -2294,11 +2294,11 @@ static void stop_insert(pos_T *end_insert_pos, int esc, int nomove)
|
|||||||
// Don't do it when "restart_edit" was set and nothing was inserted,
|
// Don't do it when "restart_edit" was set and nothing was inserted,
|
||||||
// otherwise CTRL-O w and then <Left> will clear "last_insert".
|
// otherwise CTRL-O w and then <Left> will clear "last_insert".
|
||||||
ptr = get_inserted();
|
ptr = get_inserted();
|
||||||
if (did_restart_edit == 0 || (ptr != NULL
|
int added = ptr == NULL ? 0 : (int)strlen(ptr) - new_insert_skip;
|
||||||
&& (int)strlen(ptr) > new_insert_skip)) {
|
if (did_restart_edit == 0 || added > 0) {
|
||||||
xfree(last_insert);
|
xfree(last_insert);
|
||||||
last_insert = ptr;
|
last_insert = ptr;
|
||||||
last_insert_skip = new_insert_skip;
|
last_insert_skip = added < 0 ? 0 : new_insert_skip;
|
||||||
} else {
|
} else {
|
||||||
xfree(ptr);
|
xfree(ptr);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user