Mercurial > vim
changeset 17839:c72989922b51 v8.1.1916
patch 8.1.1916: trying to allocate negative amount of memory closing popup
Commit: https://github.com/vim/vim/commit/741ea17038d4b227a4433c87d918a9da0737fc50
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Aug 24 14:16:32 2019 +0200
patch 8.1.1916: trying to allocate negative amount of memory closing popup
Problem: Trying to allocate negative amount of memory when closing a popup.
Solution: Check the rows are not out of bounds. Don't finish a selection if
it was never started.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 24 Aug 2019 14:30:03 +0200 |
parents | e128d99502ce |
children | 0408953949ba |
files | src/ui.c src/version.c |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ui.c +++ b/src/ui.c @@ -1184,7 +1184,10 @@ clip_process_selection( if (button == MOUSE_RELEASE) { - /* Check to make sure we have something selected */ + if (cb->state != SELECT_IN_PROGRESS) + return; + + // Check to make sure we have something selected if (cb->start.lnum == cb->end.lnum && cb->start.col == cb->end.col) { #ifdef FEAT_GUI @@ -1591,6 +1594,8 @@ clip_copy_modeless_selection(int both UN col1 = clip_star.min_col; if (col2 > clip_star.max_col) col2 = clip_star.max_col; + if (row1 > clip_star.max_row || row2 < clip_star.min_row) + return; if (row1 < clip_star.min_row) row1 = clip_star.min_row; if (row2 > clip_star.max_row)