changeset 28211:522864f990ec v8.2.4631

patch 8.2.4631: crash when switching window in BufWipeout autocommand Commit: https://github.com/vim/vim/commit/347538fad0c503249ebdedd5884c2081257c9f61 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 26 16:28:06 2022 +0000 patch 8.2.4631: crash when switching window in BufWipeout autocommand Problem: Crash when switching window in BufWipeout autocommand. Solution: Put any buffer in the window to avoid it being NULL. (closes #10024)
author Bram Moolenaar <Bram@vim.org>
date Sat, 26 Mar 2022 17:30:03 +0100
parents afc77faada78
children 35eab16cffae
files src/buffer.c src/testdir/test_autocmd.vim src/version.c src/window.c
diffstat 4 files changed, 51 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -708,6 +708,10 @@ aucmd_abort:
      */
     if (wipe_buf)
     {
+	// Do not wipe out the buffer if it is used in a window.
+	if (buf->b_nwindows > 0)
+	    return FALSE;
+
 	if (action == DOBUF_WIPE_REUSE)
 	{
 	    // we can re-use this buffer number, store it
index 688508a856da55757a0a030fa7b513c132295715..39ba9af7dcb42dd0d9b8a9de9992d2c2fa9f0f38
GIT binary patch
literal 88970
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
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4631,
+/**/
     4630,
 /**/
     4629,
--- a/src/window.c
+++ b/src/window.c
@@ -2285,6 +2285,41 @@ entering_window(win_T *win)
 }
 #endif
 
+    static void
+win_init_empty(win_T *wp)
+{
+    redraw_win_later(wp, NOT_VALID);
+    wp->w_lines_valid = 0;
+    wp->w_cursor.lnum = 1;
+    wp->w_curswant = wp->w_cursor.col = 0;
+    wp->w_cursor.coladd = 0;
+    wp->w_pcmark.lnum = 1;	// pcmark not cleared but set to line 1
+    wp->w_pcmark.col = 0;
+    wp->w_prev_pcmark.lnum = 0;
+    wp->w_prev_pcmark.col = 0;
+    wp->w_topline = 1;
+#ifdef FEAT_DIFF
+    wp->w_topfill = 0;
+#endif
+    wp->w_botline = 2;
+#if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+    wp->w_s = &wp->w_buffer->b_s;
+#endif
+#ifdef FEAT_TERMINAL
+    term_reset_wincolor(wp);
+#endif
+}
+
+/*
+ * Init the current window "curwin".
+ * Called when a new file is being edited.
+ */
+    void
+curwin_init(void)
+{
+    win_init_empty(curwin);
+}
+
 /*
  * Close all windows for buffer "buf".
  */
@@ -2786,7 +2821,17 @@ win_close_othertab(win_T *win, int free_
     for (ptp = first_tabpage; ptp != NULL && ptp != tp; ptp = ptp->tp_next)
 	;
     if (ptp == NULL || tp == curtab)
+    {
+	// If the buffer was removed from the window we have to give it any
+	// buffer.
+	if (win_valid_any_tab(win) && win->w_buffer == NULL)
+	{
+	    win->w_buffer = firstbuf;
+	    ++firstbuf->b_nwindows;
+	    win_init_empty(win);
+	}
 	return;
+    }
 
     // Autocommands may have closed the window already.
     for (wp = tp->tp_firstwin; wp != NULL && wp != win; wp = wp->w_next)
@@ -3685,41 +3730,6 @@ close_others(
 	emsg(_(e_other_window_contains_changes));
 }
 
-    static void
-win_init_empty(win_T *wp)
-{
-    redraw_win_later(wp, NOT_VALID);
-    wp->w_lines_valid = 0;
-    wp->w_cursor.lnum = 1;
-    wp->w_curswant = wp->w_cursor.col = 0;
-    wp->w_cursor.coladd = 0;
-    wp->w_pcmark.lnum = 1;	// pcmark not cleared but set to line 1
-    wp->w_pcmark.col = 0;
-    wp->w_prev_pcmark.lnum = 0;
-    wp->w_prev_pcmark.col = 0;
-    wp->w_topline = 1;
-#ifdef FEAT_DIFF
-    wp->w_topfill = 0;
-#endif
-    wp->w_botline = 2;
-#if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
-    wp->w_s = &wp->w_buffer->b_s;
-#endif
-#ifdef FEAT_TERMINAL
-    term_reset_wincolor(wp);
-#endif
-}
-
-/*
- * Init the current window "curwin".
- * Called when a new file is being edited.
- */
-    void
-curwin_init(void)
-{
-    win_init_empty(curwin);
-}
-
 /*
  * Allocate the first window and put an empty buffer in it.
  * Called from main().