vim-patch:8.2.2474: using freed memory when window is closed by autocommand

Problem:    Using freed memory when window is closed by autocommand.
            (houyunsong)
Solution:   Check the window pointer is still valid.
2c7080bf1c

Add missing comment from Vim patch 8.0.1420.
Test fails.
This commit is contained in:
zeertzjq 2022-04-20 09:44:12 +08:00
parent fa15f2f938
commit 69ac382a28
2 changed files with 17 additions and 1 deletions

View File

@ -2313,7 +2313,10 @@ static bool qflist_valid(win_T *wp, unsigned int qf_id)
qf_info_T *qi = &ql_info;
if (wp) {
qi = GET_LOC_LIST(wp);
if (!win_valid(wp)) {
return false;
}
qi = GET_LOC_LIST(wp); // Location list
if (!qi) {
return false;
}

View File

@ -2741,6 +2741,19 @@ func Test_autocmd_closing_cmdwin()
only
endfunc
func Test_autocmd_vimgrep()
augroup aucmd_vimgrep
au QuickfixCmdPre,BufNew,BufDelete,BufReadCmd * sb
au QuickfixCmdPre,BufNew,BufDelete,BufReadCmd * q9
augroup END
" TODO: if this is executed directly valgrind reports errors
call assert_fails('lv?a?', 'E926:')
augroup aucmd_vimgrep
au!
augroup END
endfunc
func Test_bufwipeout_changes_window()
" This should not crash, but we don't have any expectations about what
" happens, changing window in BufWipeout has unpredictable results.