From e78656875dc82206928812a26df49eca99d0b098 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Fri, 11 Jun 2021 22:32:39 -0400 Subject: [PATCH] vim-patch:8.2.0039: memory access error when "z=" has no suggestions Problem: Memory access error when "z=" has no suggestions. Solution: Check for negative index. https://github.com/vim/vim/commit/569fea2c312126dd5a542c4b1aa51095136a2c0d --- src/nvim/spell.c | 4 +++- src/nvim/testdir/test_spell.vim | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/nvim/spell.c b/src/nvim/spell.c index 10cc410e81..880c159ce7 100644 --- a/src/nvim/spell.c +++ b/src/nvim/spell.c @@ -5761,7 +5761,9 @@ cleanup_suggestions ( xfree(stp[i].st_word); } gap->ga_len = keep; - return stp[keep - 1].st_score; + if (keep >= 1) { + return stp[keep - 1].st_score; + } } } return maxscore; diff --git a/src/nvim/testdir/test_spell.vim b/src/nvim/testdir/test_spell.vim index 587d9fc42c..2ec77ca57a 100644 --- a/src/nvim/testdir/test_spell.vim +++ b/src/nvim/testdir/test_spell.vim @@ -285,9 +285,7 @@ func Test_spellsuggest_option_number() \ .. "Type number and or click with the mouse (q or empty cancels): ", a) set spell spellsuggest=0 - " FIXME: the following line is currently commented out as it triggers a - " memory error detected in cleanup_suggestions() by asan or valgrind. - "call assert_equal("\nSorry, no suggestions", execute('norm z=')) + call assert_equal("\nSorry, no suggestions", execute('norm z=')) " Unlike z=, function spellsuggest(...) should not be affected by the " max number of suggestions (2) set by the 'spellsuggest' option.