vim-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.
600323b4ef
This commit is contained in:
Jan Edmund Lazo
2019-06-06 19:59:17 -04:00
parent 7d345a7294
commit bb4e0deaf9
2 changed files with 18 additions and 0 deletions

View File

@@ -5255,8 +5255,14 @@ void ex_cbuffer(exarg_T *eap)
qf_list_changed(qi, qi->qf_curlist);
}
if (au_name != NULL) {
const buf_T *const curbuf_old = curbuf;
apply_autocmds(EVENT_QUICKFIXCMDPOST, (char_u *)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)) {