commit 7e65c44cfbab533b7b96cf643f31e37a7b01e8c4
parent c4fdd3b072adc53206efa6310fdfd197f90c8b96
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat, 28 Feb 2026 09:09:41 +0800
Merge pull request #38101 from zeertzjq/vim-9.2.0074
vim-patch:9.2.{0074,0075}
Diffstat:
2 files changed, 33 insertions(+), 3 deletions(-)
diff --git a/test/old/testdir/test_global.vim b/test/old/testdir/test_global.vim
@@ -93,7 +93,7 @@ func Test_global_newline()
call setline(1, ["foo\<NL>bar"])
exe "g/foo/s/foo\\\<NL>bar/xyz/"
call assert_equal('xyz', getline(1))
- close!
+ bw!
endfunc
" Test :g with ? as delimiter.
diff --git a/test/old/testdir/test_taglist.vim b/test/old/testdir/test_taglist.vim
@@ -302,7 +302,7 @@ func Test_tag_complete_with_overlong_line()
inboundGovernor a 2;" kind:⊢ type:forall (muxMode :: MuxMode) socket peerAddr versionNumber m a b. (MonadAsync m, MonadCatch m, MonadEvaluate m, MonadThrow m, MonadThrow (STM m), MonadTime m, MonadTimer m, MonadMask m, Ord peerAddr, HasResponder muxMode ~ True) => Tracer m (RemoteTransitionTrace peerAddr) -> Tracer m (InboundGovernorTrace peerAddr) -> ServerControlChannel muxMode peerAddr ByteString m a b -> DiffTime -> MuxConnectionManager muxMode socket peerAddr versionNumber ByteString m a b -> StrictTVar m InboundGovernorObservableState -> m Void
inboundGovernorCounters a 3;" kind:⊢ type:InboundGovernorState muxMode peerAddr m a b -> InboundGovernorCounters
END
- call writefile(tagslines, 'Xtags')
+ call writefile(tagslines, 'Xtags', 'D')
set tags=Xtags
" try with binary search
@@ -315,7 +315,37 @@ func Test_tag_complete_with_overlong_line()
call assert_equal('"tag inboundGSV inboundGovernor inboundGovernorCounters', @:)
set tagbsearch&
- call delete('Xtags')
+ set tags&
+endfunc
+
+" This used to crash Vim
+func Test_evil_emacs_tagfile()
+ CheckFeature emacs_tags
+ let longline = repeat('a', 515)
+ call writefile([
+ \ "\x0c",
+ \ longline
+ \ ], 'Xtags', 'D')
+ set tags=Xtags
+
+ call assert_fails(':tag a', 'E426:')
+
+ set tags&
+endfunc
+
+" This used to crash Vim due to a heap-buffer-underflow
+func Test_emacs_tagfile_underflow()
+ CheckFeature emacs_tags
+ " The sequence from the crash artifact:
+ let lines = [
+ \ "\x0c\xff\xffT\x19\x8a",
+ \ "\x19\x19\x0dtags\x19\x19\x19\x00\xff\xff\xff",
+ \ "\x7f3\x0c"
+ \ ]
+ call writefile(lines, 'Xtags', 'D')
+ set tags=Xtags
+ call assert_fails(':tag a', 'E431:')
+
set tags&
endfunc