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,
|
||||
// otherwise CTRL-O w and then <Left> will clear "last_insert".
|
||||
ptr = get_inserted();
|
||||
if (did_restart_edit == 0 || (ptr != NULL
|
||||
&& (int)strlen(ptr) > new_insert_skip)) {
|
||||
int added = ptr == NULL ? 0 : (int)strlen(ptr) - new_insert_skip;
|
||||
if (did_restart_edit == 0 || added > 0) {
|
||||
xfree(last_insert);
|
||||
last_insert = ptr;
|
||||
last_insert_skip = new_insert_skip;
|
||||
last_insert_skip = added < 0 ? 0 : new_insert_skip;
|
||||
} else {
|
||||
xfree(ptr);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user