diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-01-14 19:05:39 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-01-14 19:05:39 +0100 |
commit | ee93b737aaa7bf65edc7281f429dd89fcf657a6f (patch) | |
tree | 9d9019b603e4d2e09baf7e3816c771dd66d70b4a | |
parent | c10b521628f2b073fa231defa26f23937c91724d (diff) | |
download | vim-git-ee93b737aaa7bf65edc7281f429dd89fcf657a6f.tar.gz |
patch 8.2.0117: crash when using gettabwinvar() with invalid argumentsv8.2.0117
Problem: Crash when using gettabwinvar() with invalid arguments. (Yilin
Yang)
Solution: Use "curtab" if "tp" is NULL. (closes #5475)
-rw-r--r-- | src/evalwindow.c | 3 | ||||
-rw-r--r-- | src/testdir/test_getvar.vim | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 5 insertions, 1 deletions
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 @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 117, +/**/ 116, /**/ 115, |