From: Bram Moolenaar Date: Tue, 10 Nov 2020 10:43:56 +0000 (+0100) Subject: patch 8.2.1971: memory leak when map() fails X-Git-Tag: v8.2.1971 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c56936e2ba4fd219f56aab616fcb283132455697;p=vim patch 8.2.1971: memory leak when map() fails Problem: Memory leak when map() fails. Solution: Clear the typval. --- diff --git a/src/list.c b/src/list.c index 866de1871..b62c14164 100644 --- a/src/list.c +++ b/src/list.c @@ -2185,8 +2185,13 @@ filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap) nli = li->li_next; set_vim_var_nr(VV_KEY, idx); if (filter_map_one(&li->li_tv, expr, filtermap, - &newtv, &rem) == FAIL || did_emsg) + &newtv, &rem) == FAIL) break; + if (did_emsg) + { + clear_tv(&newtv); + break; + } if (filtermap == FILTERMAP_MAP) { // map(): replace the list item value diff --git a/src/version.c b/src/version.c index 8cf37f0ad..91477bcef 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1971, /**/ 1970, /**/