patch 8.2.2023: Vim: memory leak when :execute fails
Problem: Vim: memory leak when :execute fails.
Solution: Clear the growarray.
diff --git a/src/version.c b/src/version.c
index 303ecb3..5996bd6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2023,
+/**/
2022,
/**/
2021,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index eca99f3..f154249 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1200,7 +1200,10 @@
}
ectx.ec_stack.ga_len -= count;
if (failed)
+ {
+ ga_clear(&ga);
goto on_error;
+ }
if (ga.ga_data != NULL)
{
@@ -1209,7 +1212,10 @@
SOURCING_LNUM = iptr->isn_lnum;
do_cmdline_cmd((char_u *)ga.ga_data);
if (did_emsg)
+ {
+ ga_clear(&ga);
goto on_error;
+ }
}
else
{