diff src/buffer.c @ 25120:2d3660601fdb v8.2.3097

patch 8.2.3097: crash when using "quit" at recovery prompt Commit: https://github.com/vim/vim/commit/1d97efce0ce31ddf0dd4c1ae2228ef4caee6880c Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 4 13:27:11 2021 +0200 patch 8.2.3097: crash when using "quit" at recovery prompt Problem: Crash when using "quit" at recovery prompt and autocommands are triggered. Solution: Block autocommands when creating an empty buffer to use as the current buffer. (closes #8506)
author Bram Moolenaar <Bram@vim.org>
date Sun, 04 Jul 2021 13:30:04 +0200
parents 8f2262c72178
children 078edc1821bf
line wrap: on
line diff
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1130,7 +1130,12 @@ handle_swap_exists(bufref_T *old_curbuf)
 	close_buffer(curwin, curbuf, DOBUF_UNLOAD, FALSE, FALSE);
 	if (old_curbuf == NULL || !bufref_valid(old_curbuf)
 					      || old_curbuf->br_buf == curbuf)
+	{
+	    // Block autocommands here because curwin->w_buffer is NULL.
+	    block_autocmds();
 	    buf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
+	    unblock_autocmds();
+	}
 	else
 	    buf = old_curbuf->br_buf;
 	if (buf != NULL)