changeset 24830:f7445dcba17f v8.2.2953

patch 8.2.2953: Vim9: leaking memory when using heredoc script Commit: https://github.com/vim/vim/commit/518df27ebe23033a25304d3826187c27bfa53c01 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 6 17:34:13 2021 +0200 patch 8.2.2953: Vim9: leaking memory when using heredoc script Problem: Vim9: leaking memory when using heredoc script. Solution: Free the first line.
author Bram Moolenaar <Bram@vim.org>
date Sun, 06 Jun 2021 17:45:03 +0200
parents 88e87c1a7fe7
children 34842c8a8793
files src/version.c src/vim9execute.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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 */
 /**/
+    2953,
+/**/
     2952,
 /**/
     2951,
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1460,17 +1460,23 @@ exec_instructions(ectx_T *ectx)
 	    case ISN_EXEC_SPLIT:
 		{
 		    source_cookie_T cookie;
+		    char_u	    *line;
 
 		    SOURCING_LNUM = iptr->isn_lnum;
 		    CLEAR_FIELD(cookie);
 		    cookie.sourcing_lnum = iptr->isn_lnum - 1;
 		    cookie.nextline = iptr->isn_arg.string;
-		    if (do_cmdline(get_split_sourceline(0, &cookie, 0, 0),
+		    line = get_split_sourceline(0, &cookie, 0, 0);
+		    if (do_cmdline(line,
 				get_split_sourceline, &cookie,
 				   DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED)
 									== FAIL
 				|| did_emsg)
+		    {
+			vim_free(line);
 			goto on_error;
+		    }
+		    vim_free(line);
 		}
 		break;