From 9da32e4d578f4e93ef5397f9dd13e2c28b2a2595 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 9 Jul 2021 19:53:57 +0200 Subject: [PATCH] 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) --- src/testdir/test_vim9_builtin.vim | 6 ++++++ src/version.c | 2 ++ src/vim9type.c | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index dcf60072f10cb..5964ded70ca2c 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 39d8f1455c288..10a5f716864bb 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3134, /**/ 3133, /**/ diff --git a/src/vim9type.c b/src/vim9type.c index 5cf1f428444be..c4f3cd504c3f3 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;