From ee93b737aaa7bf65edc7281f429dd89fcf657a6f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 14 Jan 2020 19:05:39 +0100 Subject: [PATCH] patch 8.2.0117: crash when using gettabwinvar() with invalid arguments Problem: Crash when using gettabwinvar() with invalid arguments. (Yilin Yang) Solution: Use "curtab" if "tp" is NULL. (closes #5475) --- src/evalwindow.c | 3 ++- src/testdir/test_getvar.vim | 1 + src/version.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/evalwindow.c b/src/evalwindow.c index 672bfc13c..fb54033e5 100644 --- a/src/evalwindow.c +++ b/src/evalwindow.c @@ -183,7 +183,8 @@ find_win_by_nr( { #ifdef FEAT_PROP_POPUP // check tab-local popup windows - for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next) + for (wp = (tp == NULL ? curtab : tp)->tp_first_popupwin; + wp != NULL; wp = wp->w_next) if (wp->w_id == nr) return wp; // check global popup windows diff --git a/src/testdir/test_getvar.vim b/src/testdir/test_getvar.vim index 5a9654889..5da599136 100644 --- a/src/testdir/test_getvar.vim +++ b/src/testdir/test_getvar.vim @@ -83,6 +83,7 @@ func Test_var() unlet def_dict + call assert_equal("", gettabwinvar(9, 2020, '')) call assert_equal('', gettabwinvar(2, 3, '&nux')) call assert_equal(1, gettabwinvar(2, 3, '&nux', 1)) tabonly diff --git a/src/version.c b/src/version.c index 1e79e03c6..25049a0ff 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 117, /**/ 116, /**/ -- 2.40.0