From: Bram Moolenaar Date: Mon, 31 Aug 2020 20:16:08 +0000 (+0200) Subject: patch 8.2.1557: crash in :vimgrep when started as "vim -n" X-Git-Tag: v8.2.1557 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=997cd1a17f030d004b334d17cf1c1c57050c9906;p=vim patch 8.2.1557: crash in :vimgrep when started as "vim -n" Problem: Crash in :vimgrep when started as "vim -n". (Raul Segura) Solution: Check mfp pointer. (Yegappan Lakshmanan, closes #6827) --- diff --git a/src/quickfix.c b/src/quickfix.c index 99b0169ea..f8ff7765e 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -6022,7 +6022,7 @@ vgr_process_args( static int existing_swapfile(buf_T *buf) { - if (buf->b_ml.ml_mfp != NULL) + if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL) { char_u *fname = buf->b_ml.ml_mfp->mf_fname; size_t len = STRLEN(fname); diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim index c35b11c66..8faf69a31 100644 --- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -2833,6 +2833,21 @@ func Test_vimgrep_with_no_last_search_pat() call delete('Xresult') endfunc +" Test vimgrep without swap file +func Test_vimgrep_without_swap_file() + let lines =<< trim [SCRIPT] + vimgrep grep test_c* + call writefile(['done'], 'Xresult') + qall! + [SCRIPT] + call writefile(lines, 'Xscript') + if RunVim([], [], '--clean -n -S Xscript Xscript') + call assert_equal(['done'], readfile('Xresult')) + endif + call delete('Xscript') + call delete('Xresult') +endfunc + func Test_vimgrep_existing_swapfile() call writefile(['match apple with apple'], 'Xapple') call writefile(['swapfile'], '.Xapple.swp') diff --git a/src/version.c b/src/version.c index 022c90acb..214ee2a8e 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1557, /**/ 1556, /**/