summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-07-09 19:53:57 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-09 19:53:57 +0200
commit9da32e4d578f4e93ef5397f9dd13e2c28b2a2595 (patch)
tree3b7fa35a186301c297576996f19e144519c34179
parent90fba5627b361dbc970b3afc2eebf7411c49a0cc (diff)
patch 8.2.3134: crash when using typename() on a function referencev8.2.3134
Problem: Crash when using typename() on a function reference. (Naohiro Ono) Solution: Initialize pointer to NULL. (closes #8531)
-rw-r--r--src/testdir/test_vim9_builtin.vim6
-rw-r--r--src/version.c2
-rw-r--r--src/vim9type.c2
3 files changed, 9 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index dcf60072f1..5964ded70c 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -1943,6 +1943,12 @@ def Test_tr()
CheckDefFailure(['echo tr("a", "a", 1)'], 'E1013: Argument 3: type mismatch, expected string but got number')
enddef
+def Test_typename()
+ if has('float')
+ assert_equal('func([unknown], [unknown]): float', typename(function('pow')))
+ endif
+enddef
+
def Test_undofile()
CheckDefFailure(['undofile(10)'], 'E1013: Argument 1: type mismatch, expected string but got number')
assert_equal('.abc.un~', fnamemodify(undofile('abc'), ':t'))
diff --git a/src/version.c b/src/version.c
index 39d8f1455c..10a5f71686 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3134,
+/**/
3133,
/**/
3132,
diff --git a/src/vim9type.c b/src/vim9type.c
index 5cf1f42844..c4f3cd504c 100644
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -1166,7 +1166,7 @@ type_name(type_T *type, char **tofree)
for (i = 0; i < type->tt_argcount; ++i)
{
- char *arg_free;
+ char *arg_free = NULL;
char *arg_type;
int len;