summaryrefslogtreecommitdiff
path: root/src/buffer.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-07-04 13:27:11 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-04 13:27:11 +0200
commit1d97efce0ce31ddf0dd4c1ae2228ef4caee6880c (patch)
tree84282e48cccf1b5ff809d044f8a39e41adbd1fd9 /src/buffer.c
parent6c72fd51a899e6f0c272b08b9784d3c7a3cede20 (diff)
downloadvim-git-1d97efce0ce31ddf0dd4c1ae2228ef4caee6880c.tar.gz
patch 8.2.3097: crash when using "quit" at recovery promptv8.2.3097
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)
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 59f51aaf7..60aa32f0c 100644
--- 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)