Mercurial > vim
changeset 13058:1293c33ff452 v8.0.1404
patch 8.0.1404: invalid memory access on exit
commit https://github.com/vim/vim/commit/606d45ccd8a2ad2956e2729f6135fd79fd2f6d72
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Dec 18 16:21:44 2017 +0100
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 18 Dec 2017 16:30:05 +0100 |
parents | ddf3b9afc49b |
children | 5c8106a75f25 |
files | src/main.c src/version.c |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main.c +++ b/src/main.c @@ -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;