summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-03-31 10:13:47 +0100
committerBram Moolenaar <Bram@vim.org>2022-03-31 10:13:47 +0100
commitd1d2684c8006105444d249e846576c23d79ad4ee (patch)
tree2f1930c5916101d224c632bcffe37889c25d4434
parent1712518f4808eb0bb59c8895aa0c17c3f04572a7 (diff)
patch 8.2.4652: leaking memory if assignment failsv8.2.4652
Problem: Leaking memory if assignment fails. Solution: Clear assigned value on failure.
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/version.c b/src/version.c
index fdc4ae3c56..843affd3ed 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 */
/**/
+ 4652,
+/**/
4651,
/**/
4650,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 19f5bdc762..7ff2eaf09a 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -3098,6 +3098,7 @@ exec_instructions(ectx_T *ectx)
if (iptr->isn_type == ISN_STOREEXPORT)
{
semsg(_(e_undefined_variable_str), name);
+ clear_tv(STACK_TV_BOT(0));
goto on_error;
}
store_var(name, STACK_TV_BOT(0));
@@ -3118,6 +3119,7 @@ exec_instructions(ectx_T *ectx)
{
semsg(_(e_item_not_exported_in_script_str),
name);
+ clear_tv(STACK_TV_BOT(0));
goto on_error;
}
}