]> granicus.if.org Git - vim/commitdiff
patch 8.2.2023: Vim: memory leak when :execute fails v8.2.2023
authorBram Moolenaar <Bram@vim.org>
Sat, 21 Nov 2020 10:45:50 +0000 (11:45 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 21 Nov 2020 10:45:50 +0000 (11:45 +0100)
Problem:    Vim: memory leak when :execute fails.
Solution:   Clear the growarray.

src/version.c
src/vim9execute.c

index 303ecb3ee7c6f0f76b0458fbb6e4cdfb23bbde44..5996bd67fdade3c89af322ec440c64ae19ac69a3 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2023,
 /**/
     2022,
 /**/
index eca99f3aa2078be85d67d982ac5187b4df0124bc..f154249073a2257cf9c907d38773ea8816df3404 100644 (file)
@@ -1200,7 +1200,10 @@ call_def_function(
                    }
                    ectx.ec_stack.ga_len -= count;
                    if (failed)
+                   {
+                       ga_clear(&ga);
                        goto on_error;
+                   }
 
                    if (ga.ga_data != NULL)
                    {
@@ -1209,7 +1212,10 @@ call_def_function(
                            SOURCING_LNUM = iptr->isn_lnum;
                            do_cmdline_cmd((char_u *)ga.ga_data);
                            if (did_emsg)
+                           {
+                               ga_clear(&ga);
                                goto on_error;
+                           }
                        }
                        else
                        {