changeset 24240:2194227d034a v8.2.2661

patch 8.2.2661: leaking memory when looping over a string Commit: https://github.com/vim/vim/commit/bb5d87c8504588be9c9d2fecc5b6455a2b2f6201 Author: Bram Moolenaar <Bram@vim.org> 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.
author Bram Moolenaar <Bram@vim.org>
date Fri, 26 Mar 2021 22:30:02 +0100
parents 4abfff4a120d
children 2caf37eac41b
files src/eval.c src/version.c
diffstat 2 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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,