mirror of
https://github.com/neovim/neovim.git
synced 2025-10-09 19:36:40 +00:00
vim-patch:8.2.3915: illegal memory access when completing with invalid bytes (#27491)
Problem: illegal memory access when completing with invalid bytes. Solution: Avoid going over the end of the completion text. vim/vim@4b28ba3 Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -3557,7 +3557,12 @@ void ins_compl_delete(void)
|
||||
/// "in_compl_func" is true when called from complete_check().
|
||||
void ins_compl_insert(bool in_compl_func)
|
||||
{
|
||||
ins_bytes(compl_shown_match->cp_str + get_compl_len());
|
||||
int compl_len = get_compl_len();
|
||||
// Make sure we don't go over the end of the string, this can happen with
|
||||
// illegal bytes.
|
||||
if (compl_len < (int)strlen(compl_shown_match->cp_str)) {
|
||||
ins_bytes(compl_shown_match->cp_str + compl_len);
|
||||
}
|
||||
compl_used_match = !match_at_original_text(compl_shown_match);
|
||||
|
||||
dict_T *dict = ins_compl_dict_alloc(compl_shown_match);
|
||||
|
Reference in New Issue
Block a user