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:
@ -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;
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -695,6 +695,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1270,
|
||||
/**/
|
||||
1269,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user