summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-13 19:56:38 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-13 19:56:38 +0200
commitf3decc5830ef8d8d94902b76114935283dd4142e (patch)
tree1294cbac103d2eab3559bfcfca349b2c99e39e68
parent34db91f7a47b7bd4aabf1e1dfbaa8a08278bf78d (diff)
downloadvim-git-f3decc5830ef8d8d94902b76114935283dd4142e.tar.gz
patch 8.2.0974: Vim9: memory leak when script var has wrong typev8.2.0974
Problem: Vim9: memory leak when script var has wrong type. Solution: Free the variable name.
-rw-r--r--src/version.c2
-rw-r--r--src/vim9script.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/version.c b/src/version.c
index d2f442c89..1f9190328 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 */
/**/
+ 974,
+/**/
973,
/**/
972,
diff --git a/src/vim9script.c b/src/vim9script.c
index 13a29ec3a..650168419 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -477,7 +477,10 @@ vim9_declare_scriptvar(exarg_T *eap, char_u *arg)
p = skipwhite(p + 1);
type = parse_type(&p, &si->sn_type_list);
if (called_emsg != called_emsg_before)
+ {
+ vim_free(name);
return p;
+ }
// Create the variable with 0/NULL value.
CLEAR_FIELD(init_tv);