patch 8.2.2464: using freed memory if window closed in autocommand
Problem: Using freed memory if window closed in autocommand. (houyunsong)
Solution: Check the window still exists.
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index b678f66..b6e1cbf 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2768,7 +2768,9 @@
did_decrement = close_buffer(oldwin, curbuf,
(flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD, FALSE, FALSE);
- the_curwin->w_closing = FALSE;
+ // Autocommands may have closed the window.
+ if (win_valid(the_curwin))
+ the_curwin->w_closing = FALSE;
--buf->b_locked;
#ifdef FEAT_EVAL