# HG changeset patch # User Bram Moolenaar # Date 1649760304 -7200 # Node ID aa9720c7641211f0868ecf7eb3b3c11eca8e8c52 # Parent eb08141a60cb0d28b74e8aaa0f2e95e54ba4a3bb patch 8.2.4739: accessing freed memory after WinScrolled autocmd event Commit: https://github.com/vim/vim/commit/d58862d18f091d3c14fa3647e724ef7eea1ecefa Author: zeertzjq Date: Tue Apr 12 11:32:48 2022 +0100 patch 8.2.4739: accessing freed memory after WinScrolled autocmd event Problem: Accessing freed memory after WinScrolled autocmd event. Solution: Check the window pointer is still valid. (closes https://github.com/vim/vim/issues/10156) Remove the argument from may_trigger_winscrolled(). diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -1528,7 +1528,7 @@ ins_redraw(int ready) // not busy wi } if (ready) - may_trigger_winscrolled(curwin); + may_trigger_winscrolled(); // Trigger SafeState if nothing is pending. may_trigger_safestate(ready diff --git a/src/gui.c b/src/gui.c --- a/src/gui.c +++ b/src/gui.c @@ -5238,7 +5238,7 @@ gui_update_screen(void) } if (!finish_op) - may_trigger_winscrolled(curwin); + may_trigger_winscrolled(); # ifdef FEAT_CONCEAL if (conceal_update_lines diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -1342,7 +1342,7 @@ main_loop( validate_cursor(); if (!finish_op) - may_trigger_winscrolled(curwin); + may_trigger_winscrolled(); // If nothing is pending and we are going to wait for the user to // type a character, trigger SafeState. diff --git a/src/proto/window.pro b/src/proto/window.pro --- a/src/proto/window.pro +++ b/src/proto/window.pro @@ -17,7 +17,7 @@ void curwin_init(void); void close_windows(buf_T *buf, int keep_curwin); int one_window(void); int win_close(win_T *win, int free_buf); -void may_trigger_winscrolled(win_T *wp); +void may_trigger_winscrolled(void); void win_close_othertab(win_T *win, int free_buf, tabpage_T *tp); void win_free_all(void); win_T *winframe_remove(win_T *win, int *dirp, tabpage_T *tp); diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 9af79d8e1ba31ed2dbbff3b379ce8c0e16f4c54c..724d0733fc958f73c93734e6d132b730c2aa55ce GIT binary patch literal 93670 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 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4739, +/**/ 4738, /**/ 4737, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -2784,9 +2784,13 @@ trigger_winclosed(win_T *win) recursive = FALSE; } +/* + * Trigger WinScrolled for "curwin" if needed. + */ void -may_trigger_winscrolled(win_T *wp) -{ +may_trigger_winscrolled(void) +{ + win_T *wp = curwin; static int recursive = FALSE; char_u winid[NUMBUFLEN]; @@ -2804,10 +2808,14 @@ may_trigger_winscrolled(win_T *wp) apply_autocmds(EVENT_WINSCROLLED, winid, winid, FALSE, wp->w_buffer); recursive = FALSE; - wp->w_last_topline = wp->w_topline; - wp->w_last_leftcol = wp->w_leftcol; - wp->w_last_width = wp->w_width; - wp->w_last_height = wp->w_height; + // an autocmd may close the window, "wp" may be invalid now + if (win_valid_any_tab(wp)) + { + wp->w_last_topline = wp->w_topline; + wp->w_last_leftcol = wp->w_leftcol; + wp->w_last_width = wp->w_width; + wp->w_last_height = wp->w_height; + } } }