0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

patch 8.0.1413: accessing freed memory in :cbuffer

Problem:    Accessing freed memory in :cbuffer.
Solution:   Get quickfix list after executing autocmds. (closes #2470)
This commit is contained in:
Bram Moolenaar 2017-12-19 16:41:14 +01:00
parent 1223744849
commit aaf6e43b7a
3 changed files with 18 additions and 8 deletions

View File

@ -5520,14 +5520,6 @@ ex_cbuffer(exarg_T *eap)
#endif
int res;
if (eap->cmdidx == CMD_lbuffer || eap->cmdidx == CMD_lgetbuffer
|| eap->cmdidx == CMD_laddbuffer)
{
qi = ll_get_or_alloc_list(curwin);
if (qi == NULL)
return;
}
#ifdef FEAT_AUTOCMD
switch (eap->cmdidx)
{
@ -5549,6 +5541,15 @@ ex_cbuffer(exarg_T *eap)
}
#endif
/* Must come after autocommands. */
if (eap->cmdidx == CMD_lbuffer || eap->cmdidx == CMD_lgetbuffer
|| eap->cmdidx == CMD_laddbuffer)
{
qi = ll_get_or_alloc_list(curwin);
if (qi == NULL)
return;
}
if (*eap->arg == NUL)
buf = curbuf;
else if (*skipwhite(skipdigits(eap->arg)) == NUL)

View File

@ -1178,3 +1178,10 @@ func Test_nocatch_wipe_dummy_buffer()
call assert_fails('lv½ /x', 'E480')
au!
endfunc
func Test_wipe_cbuffer()
sv x
au * * bw
lb
au!
endfunc

View File

@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1413,
/**/
1412,
/**/