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

patch 8.2.4663: occasional crash when running the GUI tests

Problem:    Occasional crash when running the GUI tests.
Solution:   Check that the line index is not too high. (closes #8681)
This commit is contained in:
Bram Moolenaar 2022-04-01 19:44:47 +01:00
parent 22ebd172e4
commit 17fa233f6f
2 changed files with 13 additions and 8 deletions

View File

@ -3634,9 +3634,9 @@ win_rest_invalid(win_T *wp)
/* /*
* insert lines on the screen and update ScreenLines[] * insert lines on the screen and update ScreenLines[]
* 'end' is the line after the scrolled part. Normally it is Rows. * "end" is the line after the scrolled part. Normally it is Rows.
* When scrolling region used 'off' is the offset from the top for the region. * When scrolling region used "off" is the offset from the top for the region.
* 'row' and 'end' are relative to the start of the region. * "row" and "end" are relative to the start of the region.
* *
* return FAIL for failure, OK for success. * return FAIL for failure, OK for success.
*/ */
@ -3661,14 +3661,15 @@ screen_ins_lines(
/* /*
* FAIL if * FAIL if
* - there is no valid screen * - there is no valid screen
* - the screen has to be redrawn completely
* - the line count is less than one * - the line count is less than one
* - the line count is more than 'ttyscroll' * - the line count is more than 'ttyscroll'
* - "end" is more than "Rows" (safety check, should not happen)
* - redrawing for a callback and there is a modeless selection * - redrawing for a callback and there is a modeless selection
* - there is a popup window * - there is a popup window
*/ */
if (!screen_valid(TRUE) if (!screen_valid(TRUE)
|| line_count <= 0 || line_count > p_ttyscroll || line_count <= 0 || line_count > p_ttyscroll
|| end > Rows
#ifdef FEAT_CLIPBOARD #ifdef FEAT_CLIPBOARD
|| (clip_star.state != SELECT_CLEARED || (clip_star.state != SELECT_CLEARED
&& redrawing_for_callback > 0) && redrawing_for_callback > 0)
@ -3896,13 +3897,15 @@ screen_del_lines(
* - the screen has to be redrawn completely * - the screen has to be redrawn completely
* - the line count is less than one * - the line count is less than one
* - the line count is more than 'ttyscroll' * - the line count is more than 'ttyscroll'
* - "end" is more than "Rows" (safety check, should not happen)
* - redrawing for a callback and there is a modeless selection * - redrawing for a callback and there is a modeless selection
*/ */
if (!screen_valid(TRUE) || line_count <= 0 if (!screen_valid(TRUE)
|| (!force && line_count > p_ttyscroll) || line_count <= 0
|| (!force && line_count > p_ttyscroll)
|| end > Rows
#ifdef FEAT_CLIPBOARD #ifdef FEAT_CLIPBOARD
|| (clip_star.state != SELECT_CLEARED || (clip_star.state != SELECT_CLEARED && redrawing_for_callback > 0)
&& redrawing_for_callback > 0)
#endif #endif
) )
return FAIL; return FAIL;

View File

@ -750,6 +750,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 */
/**/
4663,
/**/ /**/
4662, 4662,
/**/ /**/