summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-07-09 19:17:55 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-09 19:17:55 +0200
commit90fba5627b361dbc970b3afc2eebf7411c49a0cc (patch)
tree3565391643590c32c85281582cba9b3a0d361c5a
parent6bcb18253a392cf75d3784953ef9c71de7af9019 (diff)
patch 8.2.3133: Vim9: memory leak when add() failsv8.2.3133
Problem: Vim9: memory leak when add() fails. Solution: Allocate listitem_T after type check.
-rw-r--r--src/list.c3
-rw-r--r--src/version.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/list.c b/src/list.c
index 9aec823eef..d138d868cd 100644
--- a/src/list.c
+++ b/src/list.c
@@ -602,11 +602,12 @@ list_append(list_T *l, listitem_T *item)
int
list_append_tv(list_T *l, typval_T *tv)
{
- listitem_T *li = listitem_alloc();
+ listitem_T *li;
if (l->lv_type != NULL && l->lv_type->tt_member != NULL
&& check_typval_arg_type(l->lv_type->tt_member, tv, 0) == FAIL)
return FAIL;
+ li = listitem_alloc();
if (li == NULL)
return FAIL;
copy_tv(tv, &li->li_tv);
diff --git a/src/version.c b/src/version.c
index e2108a025a..39d8f1455c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3133,
+/**/
3132,
/**/
3131,