summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-03-26 16:42:23 +0000
committerBram Moolenaar <Bram@vim.org>2022-03-26 16:42:23 +0000
commitf3980dc5d0a5f873cf764b8ba3e567e42259e4e5 (patch)
treecc57391efaa80338fa54ad82139456b19f82e431 /src
parent347538fad0c503249ebdedd5884c2081257c9f61 (diff)
patch 8.2.4632: using freed memory in flatten()v8.2.4632
Problem: Using freed memory in flatten(). Solution: Clear typval after recursing into list.
Diffstat (limited to 'src')
-rw-r--r--src/list.c2
-rw-r--r--src/version.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/list.c b/src/list.c
index 3354068a4d..666fb5ad61 100644
--- a/src/list.c
+++ b/src/list.c
@@ -953,12 +953,12 @@ list_flatten(list_T *list, listitem_T *first, long maxitems, long maxdepth)
list_free_item(list, item);
return;
}
- clear_tv(&item->li_tv);
if (maxdepth > 0)
list_flatten(list, item->li_prev == NULL
? list->lv_first : item->li_prev->li_next,
itemlist->lv_len, maxdepth - 1);
+ clear_tv(&item->li_tv);
list_free_item(list, item);
}
diff --git a/src/version.c b/src/version.c
index 9d78a0e8f7..962fa0ba18 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 */
/**/
+ 4632,
+/**/
4631,
/**/
4630,