diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2026-05-04 07:20:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-04 07:20:16 +0800 |
| commit | 0e69a380263f5a78d11cd05c65cc224a3c74b53e (patch) | |
| tree | 4f8d56e7ec2f1fefa45afbd6589a7e97d2f5196d /runtime/indent/javascriptreact.vim | |
| parent | 7ed5609439ba83d75e972beb859245d998df09ea (diff) | |
| download | rneovim-0e69a380263f5a78d11cd05c65cc224a3c74b53e.tar.gz rneovim-0e69a380263f5a78d11cd05c65cc224a3c74b53e.tar.bz2 rneovim-0e69a380263f5a78d11cd05c65cc224a3c74b53e.zip | |
vim-patch:9.2.0436: Buffer overflow when parsing overlong errorformat lines (#39578)
Problem: When an error line in a file passed to :cfile / :cgetfile is
longer than IOSIZE, qf_parse_file_pfx() copies the tail
into the fixed-size IObuff with STRMOVE(), overflowing the heap buffer.
The same code path can also loop indefinitely because
qf_parse_file_pfx() always returns QF_MULTISCAN when a
tail is present, and qf_init_ext() unconditionally goes
to "restofline" without bounding the tail length (Nabih).
Solution: Remove the STRMOVE() into IObuff. In the QF_MULTISCAN
branch, alias linebuf into the tail directly and update
linelen, requiring strict progress (new length less than
the previous length) before retrying; otherwise ignore
the line.
closes: vim/vim#20126
Supported by AI
https://github.com/vim/vim/commit/77677c33dec485aadd371da75cce55d449b51798
Co-authored-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'runtime/indent/javascriptreact.vim')
0 files changed, 0 insertions, 0 deletions