patch 8.2.3134: crash when using typename() on a function reference
Problem: Crash when using typename() on a function reference. (Naohiro Ono)
Solution: Initialize pointer to NULL. (closes #8531)
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index dcf6007..5964ded 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -1943,6 +1943,12 @@
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 39d8f14..10a5f71 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
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 5cf1f42..c4f3cd5 100644
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -1166,7 +1166,7 @@
for (i = 0; i < type->tt_argcount; ++i)
{
- char *arg_free;
+ char *arg_free = NULL;
char *arg_type;
int len;