Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
patch 8.1.0060: crash when autocommands delete the current buffer
Problem:    Crash when autocommands delete the current buffer. (Dominique
            Pelle)
Solution:   Check that autocommands don't change the buffer.
  • Loading branch information
brammool committed Jun 16, 2018
1 parent bc5020a commit 600323b
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/quickfix.c
Expand Up @@ -6272,8 +6272,16 @@ ex_cbuffer(exarg_T *eap)
if (res >= 0)
qf_list_changed(qi, qi->qf_curlist);
if (au_name != NULL)
{
buf_T *curbuf_old = curbuf;

apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
curbuf->b_fname, TRUE, curbuf);
if (curbuf != curbuf_old)
// Autocommands changed buffer, don't jump now, "qi" may
// be invalid.
res = 0;
}
if (res > 0 && (eap->cmdidx == CMD_cbuffer ||
eap->cmdidx == CMD_lbuffer))
qf_jump(qi, 0, 0, eap->forceit); /* display first error */
Expand Down
12 changes: 12 additions & 0 deletions src/testdir/test_quickfix.vim
Expand Up @@ -3350,3 +3350,15 @@ func Test_qftitle()
call assert_equal('Errors', w:quickfix_title)
cclose
endfunc

func Test_lbuffer_with_bwipe()
new
new
augroup nasty
au * * bwipe
augroup END
lbuffer
augroup nasty
au!
augroup END
endfunc
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -761,6 +761,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
60,
/**/
59,
/**/
Expand Down

0 comments on commit 600323b

Please sign in to comment.