diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-22 22:48:55 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-22 22:48:55 +0800 |
commit | b84a67f50ed6141f72d433094a1a611ae4f67924 (patch) | |
tree | 489d51091837a31218e6634910a81ff65e225b2d /test/old | |
parent | e34eb4ccf9c3a9c04127cb8e00742ed2e3316484 (diff) | |
download | rneovim-b84a67f50ed6141f72d433094a1a611ae4f67924.tar.gz rneovim-b84a67f50ed6141f72d433094a1a611ae4f67924.tar.bz2 rneovim-b84a67f50ed6141f72d433094a1a611ae4f67924.zip |
vim-patch:9.0.0579: using freed memory when 'tagfunc' wipes out buffer (#24838)
Problem: Using freed memory when 'tagfunc' wipes out buffer that holds
'complete'.
Solution: Make a copy of the option. Make sure cursor position is valid.
https://github.com/vim/vim/commit/0ff01835a40f549c5c4a550502f62a2ac9ac447c
Cherry-pick a cmdwin change from patch 9.0.0500.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'test/old')
-rw-r--r-- | test/old/testdir/test_ins_complete.vim | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index f01a95b6fe..d9b2abffab 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -645,9 +645,8 @@ func Test_pum_with_preview_win() call writefile(lines, 'Xpreviewscript') let buf = RunVimInTerminal('-S Xpreviewscript', #{rows: 12}) - call TermWait(buf, 50) call term_sendkeys(buf, "Gi\<C-X>\<C-O>") - call TermWait(buf, 100) + call TermWait(buf, 200) call term_sendkeys(buf, "\<C-N>") call VerifyScreenDump(buf, 'Test_pum_with_preview_win', {}) @@ -2237,4 +2236,21 @@ func Test_ins_complete_end_of_line() bwipe! endfunc +func s:Tagfunc(t,f,o) + bwipe! + return [] +endfunc + +" This was using freed memory, since 'complete' was in a wiped out buffer. +" Also using a window that was closed. +func Test_tagfunc_wipes_out_buffer() + new + set complete=.,t,w,b,u,i + se tagfunc=s:Tagfunc + sil norm i + + bwipe! +endfunc + + " vim: shiftwidth=2 sts=2 expandtab |