vim-patch:9.0.0598: using negative array index with negative width window

Problem:    Using negative array index with negative width window.
Solution:   Make sure the window width does not become negative.

8279af514c

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq
2023-05-13 22:39:28 +08:00
parent 2de3362ce3
commit cd9ca700e5
2 changed files with 27 additions and 1 deletions

View File

@@ -2304,6 +2304,9 @@ static void win_equal_rec(win_T *next_curwin, bool current, frame_T *topfr, int
}
if (hnc) { // add next_curwin size
next_curwin_size -= (int)p_wiw - (m - n);
if (next_curwin_size < 0) {
next_curwin_size = 0;
}
new_size += next_curwin_size;
room -= new_size - next_curwin_size;
} else {
@@ -6686,7 +6689,8 @@ static int win_border_width(win_T *wp)
/// Set the width of a window.
void win_new_width(win_T *wp, int width)
{
wp->w_width = width;
// Should we give an error if width < 0?
wp->w_width = width < 0 ? 0 : width;
wp->w_pos_changed = true;
win_set_inner_size(wp, true);
}