summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-29 21:45:41 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-29 21:45:41 +0200
commit1b9129809d8269acb8e7c79d8fc99c7976b4f76e (patch)
treec295744bdee425cdea4e00883d084957c1cb45ce
parentf43e7ac4eee22dbb26fc069ec9a3d1598ec8dfe9 (diff)
downloadvim-git-1b9129809d8269acb8e7c79d8fc99c7976b4f76e.tar.gz
patch 8.2.1773: crash when calling mapset() with a list as first argumentv8.2.1773
Problem: Crash when calling mapset() with a list as first argument. Solution: Check for NULL. (closes #7040)
-rw-r--r--src/map.c2
-rw-r--r--src/testdir/test_maparg.vim2
-rw-r--r--src/version.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/src/map.c b/src/map.c
index eed3a55d0..6a994d418 100644
--- a/src/map.c
+++ b/src/map.c
@@ -2304,6 +2304,8 @@ f_mapset(typval_T *argvars, typval_T *rettv UNUSED)
char_u *arg;
which = tv_get_string_buf_chk(&argvars[0], buf);
+ if (which == NULL)
+ return;
mode = get_map_mode(&which, 0);
is_abbr = (int)tv_get_number(&argvars[1]);
diff --git a/src/testdir/test_maparg.vim b/src/testdir/test_maparg.vim
index ea921d638..285474d52 100644
--- a/src/testdir/test_maparg.vim
+++ b/src/testdir/test_maparg.vim
@@ -238,6 +238,8 @@ func Test_mapset()
iunmap K
let &cpo = cpo_save
bwipe!
+
+ call assert_fails('call mapset([], v:false, {})', 'E730:')
endfunc
func Check_ctrlb_map(d, check_alt)
diff --git a/src/version.c b/src/version.c
index d5c8f3027..acac541fe 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1773,
+/**/
1772,
/**/
1771,