vim-patch:8.2.4074: going over the end of NameBuff

Problem:    Going over the end of NameBuff.
Solution:   Check length when appending a space.
de05bb2573
This commit is contained in:
zeertzjq 2022-09-22 13:15:52 +08:00
parent a636e24280
commit 1bced9bf94
2 changed files with 20 additions and 4 deletions

View File

@ -80,10 +80,11 @@ void win_redr_status(win_T *wp)
p = (char_u *)NameBuff;
len = (int)STRLEN(p);
if (bt_help(wp->w_buffer)
|| wp->w_p_pvw
|| bufIsChanged(wp->w_buffer)
|| wp->w_buffer->b_p_ro) {
if ((bt_help(wp->w_buffer)
|| wp->w_p_pvw
|| bufIsChanged(wp->w_buffer)
|| wp->w_buffer->b_p_ro)
&& len < MAXPATHL - 1) {
*(p + len++) = ' ';
}
if (bt_help(wp->w_buffer)) {

View File

@ -1983,5 +1983,20 @@ func Test_edit_CTRL_hat()
bwipe!
endfunc
" Weird long file name was going over the end of NameBuff
func Test_edit_overlong_file_name()
CheckUnix
file 0000000000000000000000000000
file %%%%%%%%%%%%%%%%%%%%%%%%%%
file %%%%%%
set readonly
set ls=2
redraw!
set noreadonly ls&
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab