# HG changeset patch # User Bram Moolenaar # Date 1616794202 -3600 # Node ID 2194227d034a7c099571c091ae101facdf0f62a3 # Parent 4abfff4a120d347f5a53729e23d5df6cd17266b8 patch 8.2.2661: leaking memory when looping over a string Commit: https://github.com/vim/vim/commit/bb5d87c8504588be9c9d2fecc5b6455a2b2f6201 Author: Bram Moolenaar Date: Fri Mar 26 22:15:26 2021 +0100 patch 8.2.2661: leaking memory when looping over a string Problem: Leaking memory when looping over a string. Solution: Free the memory. diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -1815,8 +1815,10 @@ next_for_item(void *fi_void, char_u *arg tv.v_lock = VAR_FIXED; tv.vval.v_string = vim_strnsave(fi->fi_string + fi->fi_byte_idx, len); fi->fi_byte_idx += len; - return ex_let_vars(arg, &tv, TRUE, fi->fi_semicolon, + result = ex_let_vars(arg, &tv, TRUE, fi->fi_semicolon, fi->fi_varcount, flag, NULL) == OK; + vim_free(tv.vval.v_string); + return result; } item = fi->fi_lw.lw_item; diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 2661, +/**/ 2660, /**/ 2659,