patch 8.2.2414: using freed memory when closing the cmdline window
Problem: Using freed memory when closing the cmdline window.
Solution: Check the window is still valid.
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 5430014..d025368 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4395,10 +4395,15 @@
// Avoid command-line window first character being concealed.
curwin->w_p_cole = 0;
# endif
+ // First go back to the original window.
wp = curwin;
set_bufref(&bufref, curbuf);
win_goto(old_curwin);
- win_close(wp, TRUE);
+
+ // win_goto() may trigger an autocommand that already closes the
+ // cmdline window.
+ if (win_valid(wp))
+ win_close(wp, TRUE);
// win_close() may have already wiped the buffer when 'bh' is
// set to 'wipe'