1
0
forked from aniani/vim

patch 9.0.0882: using freed memory after SpellFileMissing autocmd uses bwipe

Problem:    Using freed memory after SpellFileMissing autocmd uses bwipe.
Solution:   Bail out if the window no longer exists.
This commit is contained in:
Bram Moolenaar 2022-11-14 20:52:14 +00:00
parent 24dc19cdb2
commit c3d27ada14
3 changed files with 17 additions and 2 deletions

View File

@ -2110,8 +2110,8 @@ did_set_spelllang(win_T *wp)
{
spell_load_lang(lang);
// SpellFileMissing autocommands may do anything, including
// destroying the buffer we are using...
if (!bufref_valid(&bufref))
// destroying the buffer we are using or closing the window.
if (!bufref_valid(&bufref) || !win_valid_any_tab(wp))
{
ret_msg = N_(e_spellfilemising_autocommand_deleted_buffer);
goto theend;

View File

@ -159,6 +159,19 @@ func Test_spell_file_missing()
%bwipe!
endfunc
func Test_spell_file_missing_bwipe()
" this was using a window that was wiped out in a SpellFileMissing autocmd
set spelllang=xy
au SpellFileMissing * n0
set spell
au SpellFileMissing * bw
snext somefile
au! SpellFileMissing
bwipe!
set nospell spelllang=en
endfunc
func Test_spelldump()
" In case the spell file is not found avoid getting the download dialog, we
" would get stuck at the prompt.

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
882,
/**/
881,
/**/