patch 8.0.0700: segfault with QuitPre autocommand closes the window
Problem: Segfault with QuitPre autocommand closes the window. (Marek)
Solution: Check that the window pointer is still valid. (Christian Brabandt,
closes #1817)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 6ff578e..8f427cf 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7271,8 +7271,11 @@
apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
/* Refuse to quit when locked or when the buffer in the last window is
* being closed (can only happen in autocommands). */
- if (curbuf_locked() || (wp->w_buffer->b_nwindows == 1
- && wp->w_buffer->b_locked > 0))
+ if (curbuf_locked()
+# ifdef FEAT_WINDOWS
+ || !win_valid(wp)
+# endif
+ || (wp->w_buffer->b_nwindows == 1 && wp->w_buffer->b_locked > 0))
return;
#endif