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)
diff --git a/src/main.c b/src/main.c
index e8006c3..bfcc3e5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1432,9 +1432,14 @@
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;
diff --git a/src/version.c b/src/version.c
index 1ce42a9..283a92c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1404,
+/**/
1403,
/**/
1402,