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;
|
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)
|
if (dirc == '?' && stat.cur == maxcount + 1)
|
||||||
stat.cur = -1;
|
stat.cur = -1;
|
||||||
|
|
||||||
|
|||||||
@ -270,6 +270,29 @@ func Test_searchcount_fails()
|
|||||||
call assert_fails('echo searchcount({"pos" : [1, 2, []]})', 'E745:')
|
call assert_fails('echo searchcount({"pos" : [1, 2, []]})', 'E745:')
|
||||||
endfunc
|
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()
|
func Test_searchcount_in_statusline()
|
||||||
CheckScreendump
|
CheckScreendump
|
||||||
|
|
||||||
|
|||||||
@ -695,6 +695,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1270,
|
||||||
/**/
|
/**/
|
||||||
1269,
|
1269,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user