summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-12 23:09:25 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-12 23:09:25 +0200
commit1a2f4bf6c80d750615f19c34e5baddd21310c9c9 (patch)
tree45f0c953b02dddff7028c4265ff271803903b683
parent675f716efb534798a3bdb651cdb272302127602a (diff)
downloadvim-git-1a2f4bf6c80d750615f19c34e5baddd21310c9c9.tar.gz
patch 8.2.0566: Vim9: variable can be used uninitializedv8.2.0566
Problem: Vim9: variable can be used uninitialized. Solution: Jump to after where variable is used.
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/version.c b/src/version.c
index 2e2a4d051..35f8df8e8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 566,
+/**/
565,
/**/
564,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 4ac760e66..cddb9d213 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -524,7 +524,7 @@ call_def_function(
else
argc -= vararg_count;
if (exe_newlist(vararg_count, &ectx) == FAIL)
- goto failed;
+ goto failed_early;
if (defcount > 0)
// Move varargs list to below missing default arguments.
*STACK_TV_BOT(defcount- 1) = *STACK_TV_BOT(-1);
@@ -1773,7 +1773,7 @@ failed:
// When failed need to unwind the call stack.
while (ectx.ec_frame != initial_frame_ptr)
func_return(&ectx);
-
+failed_early:
for (idx = 0; idx < ectx.ec_stack.ga_len; ++idx)
clear_tv(STACK_TV(idx));
vim_free(ectx.ec_stack.ga_data);