Mercurial > vim
changeset 20770:b366a0fe8296 v8.2.0937
patch 8.2.0937: asan failure in the flatten() test
Commit: https://github.com/vim/vim/commit/dcf59c37d0e1517439c4c0c4a6a5ca09c90157ad
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 9 17:30:04 2020 +0200
patch 8.2.0937: asan failure in the flatten() test
Problem: Asan failure in the flatten() test.
Solution: Free the flattened list.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 09 Jun 2020 17:45:03 +0200 |
parents | 4abe06b07138 |
children | 8aa004f7e48f |
files | src/list.c src/version.c |
diffstat | 2 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/list.c +++ b/src/list.c @@ -739,6 +739,7 @@ list_insert(list_T *l, listitem_T *ni, l list_flatten(list_T *list, long maxdepth) { listitem_T *item; + listitem_T *tofree; int n; if (maxdepth == 0) @@ -760,11 +761,14 @@ list_flatten(list_T *list, long maxdepth vimlist_remove(list, item, item); if (list_extend(list, item->li_tv.vval.v_list, next) == FAIL) return FAIL; + clear_tv(&item->li_tv); + tofree = item; if (item->li_prev == NULL) item = list->lv_first; else item = item->li_prev->li_next; + list_free_item(list, tofree); if (++n >= maxdepth) {