vim-patch:9.0.0882: using freed memory after SpellFileMissing autocmd uses bwipe (#21060)

Problem:    Using freed memory after SpellFileMissing autocmd uses bwipe.
Solution:   Bail out if the window no longer exists.

c3d27ada14

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2022-11-15 07:58:22 +08:00
committed by GitHub
parent 2685d27cd6
commit 7439973851
2 changed files with 16 additions and 2 deletions

View File

@@ -110,6 +110,7 @@
#include "nvim/types.h" // for char_u
#include "nvim/undo.h" // for u_save_cursor
#include "nvim/vim.h" // for curwin, strlen, STRLCPY, STRNCMP
#include "nvim/window.h" // for win_valid_any_tab
// Result values. Lower number is accepted over higher one.
enum {
@@ -1965,8 +1966,8 @@ char *did_set_spelllang(win_T *wp)
} else {
spell_load_lang((char_u *)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_("E797: SpellFileMissing autocommand deleted buffer");
goto theend;
}