summaryrefslogtreecommitdiff
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
parent347538fad0c503249ebdedd5884c2081257c9f61 (diff)
downloadvim-git-f3980dc5d0a5f873cf764b8ba3e567e42259e4e5.tar.gz
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.
-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 3354068a4..666fb5ad6 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 9d78a0e8f..962fa0ba1 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,