mirror of
https://github.com/vim/vim.git
synced 2026-05-28 00:21:37 +02:00
patch 9.2.0159: Crash when reading quickfix line
Problem: Crash when reading quickfix line (Kaiyu Xie) Solution: Make sure line is terminated by NUL closes: #19667 Supported by AI Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -838,6 +838,7 @@ qf_get_next_file_line(qfstate_T *state)
|
||||
// Copy the read part of the line, excluding null-terminator
|
||||
memcpy(state->growbuf, IObuff, IOSIZE - 1);
|
||||
growbuflen = state->linelen;
|
||||
state->growbuf[growbuflen] = NUL;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
|
||||
@@ -6992,4 +6992,19 @@ func Test_quickfixtextfunc_wipes_buffer()
|
||||
bw
|
||||
endfunc
|
||||
|
||||
func Test_quickfix_longline_noeol()
|
||||
CheckRunVimInTerminal
|
||||
let qf = 'Xquickfix'
|
||||
let args = $"-q {qf}"
|
||||
let after =<< trim [CODE]
|
||||
call writefile(['okay'], "XDONE")
|
||||
qall!
|
||||
[CODE]
|
||||
defer delete("XDONE")
|
||||
call writefile([repeat('A', 1024)], qf, 'bD')
|
||||
call RunVim([], after, args)
|
||||
call WaitForAssert({-> assert_true(filereadable("XDONE"))})
|
||||
call assert_equal(['okay'], readfile("XDONE"))
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -734,6 +734,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
159,
|
||||
/**/
|
||||
158,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user