Permalink
Browse files

patch 8.0.1413: accessing freed memory in :cbuffer

Problem:    Accessing freed memory in :cbuffer.
Solution:   Get quickfix list after executing autocmds. (closes #2470)
  • Loading branch information...
brammool committed Dec 19, 2017
1 parent 1223744 commit aaf6e43b7a99cedb89d73ba749a46f7a0f16bbb6
Showing with 18 additions and 8 deletions.
  1. +9 −8 src/quickfix.c
  2. +7 −0 src/testdir/test_autocmd.vim
  3. +2 −0 src/version.c
View
@@ -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)
@@ -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
@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1413,
/**/
1412,
/**/

0 comments on commit aaf6e43

Please sign in to comment.