patch 9.0.1270: crash when using search stat in narrow screen

Problem:    Crash when using search stat in narrow screen.
Solution:   Check length of message. (closes #11921)
This commit is contained in:
zeertzjq
2023-01-31 21:13:38 +00:00
committed by Bram Moolenaar
parent b40c1de384
commit a7d36b7320
3 changed files with 30 additions and 1 deletions

View File

@ -3154,7 +3154,11 @@ cmdline_search_stat(
len += 2;
}
mch_memmove(msgbuf + STRLEN(msgbuf) - len, t, len);
size_t msgbuf_len = STRLEN(msgbuf);
if (len > msgbuf_len)
len = msgbuf_len;
mch_memmove(msgbuf + msgbuf_len - len, t, len);
if (dirc == '?' && stat.cur == maxcount + 1)
stat.cur = -1;

View File

@ -270,6 +270,29 @@ func Test_searchcount_fails()
call assert_fails('echo searchcount({"pos" : [1, 2, []]})', 'E745:')
endfunc
func Test_search_stat_narrow_screen()
" This used to crash Vim
let save_columns = &columns
try
let after =<< trim [CODE]
set laststatus=2
set columns=16
set shortmess-=S showcmd
call setline(1, 'abc')
call feedkeys("/abc\<CR>:quit!\<CR>")
autocmd VimLeavePre * call writefile(["done"], "Xdone")
[CODE]
if !RunVim([], after, '--clean')
return
endif
call assert_equal("done", readfile("Xdone")[0])
call delete('Xdone')
finally
let &columns = save_columns
endtry
endfunc
func Test_searchcount_in_statusline()
CheckScreendump

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1270,
/**/
1269,
/**/