aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-04-12 19:16:47 +0800
committerGitHub <noreply@github.com>2022-04-12 19:16:47 +0800
commit7e1e906738ae8cf2d38ded4be3bef50d72b7c2a7 (patch)
tree7ced47de808516f092020d983504c84b41c90e8d /test
parentdbd5242d8e10db4ed077547755f0d84aa8261cb5 (diff)
downloadrneovim-7e1e906738ae8cf2d38ded4be3bef50d72b7c2a7.tar.gz
rneovim-7e1e906738ae8cf2d38ded4be3bef50d72b7c2a7.tar.bz2
rneovim-7e1e906738ae8cf2d38ded4be3bef50d72b7c2a7.zip
vim-patch:8.2.4739: accessing freed memory after WinScrolled autocmd event (#18090)
Problem: Accessing freed memory after WinScrolled autocmd event. Solution: Check the window pointer is still valid. (closes vim/vim#10156) Remove the argument from may_trigger_winscrolled(). https://github.com/vim/vim/commit/d58862d18f091d3c14fa3647e724ef7eea1ecefa
Diffstat (limited to 'test')
-rw-r--r--test/functional/autocmd/winscrolled_spec.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/test/functional/autocmd/winscrolled_spec.lua b/test/functional/autocmd/winscrolled_spec.lua
index 01c2631b62..5c1b758961 100644
--- a/test/functional/autocmd/winscrolled_spec.lua
+++ b/test/functional/autocmd/winscrolled_spec.lua
@@ -6,12 +6,14 @@ local eval = helpers.eval
local command = helpers.command
local feed = helpers.feed
local meths = helpers.meths
+local assert_alive = helpers.assert_alive
+
+before_each(clear)
describe('WinScrolled', function()
local win_id
before_each(function()
- clear()
win_id = meths.get_current_win().id
command(string.format('autocmd WinScrolled %d let g:matched = v:true', win_id))
command('let g:scrolled = 0')
@@ -72,3 +74,12 @@ describe('WinScrolled', function()
eq(1, eval('g:scrolled'))
end)
end)
+
+it('closing window in WinScrolled does not cause use-after-free #13265', function()
+ local lines = {'aaa', 'bbb'}
+ meths.buf_set_lines(0, 0, -1, true, lines)
+ command('vsplit')
+ command('autocmd WinScrolled * close')
+ feed('<C-E>')
+ assert_alive()
+end)