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

patch 8.0.1404: invalid memory access on exit

Problem:    Invalid memory access on exit when autocommands wipe out a buffer.
            (gy741, Dominique Pelle)
Solution:   Check if the buffer is still valid. (closes #2449)
This commit is contained in:
Bram Moolenaar 2017-12-18 16:21:44 +01:00
parent 4fb921e388
commit 606d45ccd8
2 changed files with 8 additions and 1 deletions

View File

@ -1432,9 +1432,14 @@ getout(int exitval)
buf = wp->w_buffer;
if (CHANGEDTICK(buf) != -1)
{
bufref_T bufref;
set_bufref(&bufref, buf);
apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
buf->b_fname, FALSE, buf);
CHANGEDTICK(buf) = -1; /* note that we did it already */
if (bufref_valid(&bufref))
CHANGEDTICK(buf) = -1; /* note we did it already */
/* start all over, autocommands may mess up the lists */
next_tp = first_tabpage;
break;

View File

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