vim-patch:9.1.1447: completion: crash when backspacing with fuzzy completion

Problem:  completion: crash when backspacing with fuzzy completion
Solution: Don't dereference compl_first_match when it's NULL
          (zeertzjq).

related: neovim/neovim#34419
closes: vim/vim#17511

91782b4aeb
This commit is contained in:
zeertzjq
2025-06-11 06:38:40 +08:00
parent b5aef05b8f
commit ac772706cc
2 changed files with 33 additions and 6 deletions

View File

@@ -1339,13 +1339,15 @@ static int cp_compare_nearest(const void *a, const void *b)
/// Set fuzzy score.
static void set_fuzzy_score(void)
{
if (compl_leader.data != NULL && compl_leader.size > 0) {
compl_T *comp = compl_first_match;
do {
comp->cp_score = fuzzy_match_str(comp->cp_str.data, compl_leader.data);
comp = comp->cp_next;
} while (comp != NULL && !is_first_match(comp));
if (!compl_first_match || compl_leader.data == NULL || compl_leader.size == 0) {
return;
}
compl_T *comp = compl_first_match;
do {
comp->cp_score = fuzzy_match_str(comp->cp_str.data, compl_leader.data);
comp = comp->cp_next;
} while (comp != NULL && !is_first_match(comp));
}
/// Sort completion matches, excluding the node that contains the leader.