0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.0.1331: possible crash when window can be zero lines high

Problem:    Possible crash when window can be zero lines high. (Joseph
            Dornisch)
Solution:   Only set w_fraction if the window is at least two lines high.
This commit is contained in:
Bram Moolenaar 2017-11-22 22:22:11 +01:00
parent a2a80162de
commit 3679c17917
2 changed files with 6 additions and 3 deletions

View File

@ -771,6 +771,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 */
/**/
1331,
/**/ /**/
1330, 1330,
/**/ /**/

View File

@ -1081,8 +1081,7 @@ win_split_ins(
/* Set w_fraction now so that the cursor keeps the same relative /* Set w_fraction now so that the cursor keeps the same relative
* vertical position. */ * vertical position. */
if (oldwin->w_height > 0) set_fraction(oldwin);
set_fraction(oldwin);
wp->w_fraction = oldwin->w_fraction; wp->w_fraction = oldwin->w_fraction;
if (flags & WSP_VERT) if (flags & WSP_VERT)
@ -5682,11 +5681,13 @@ win_drag_vsep_line(win_T *dragwin, int offset)
/* /*
* Set wp->w_fraction for the current w_wrow and w_height. * Set wp->w_fraction for the current w_wrow and w_height.
* Has no effect when the window is less than two lines.
*/ */
void void
set_fraction(win_T *wp) set_fraction(win_T *wp)
{ {
wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT if (wp->w_height > 1)
wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
+ wp->w_height / 2) / (long)wp->w_height; + wp->w_height / 2) / (long)wp->w_height;
} }