patch 9.1.0209: leaking memory in exe_newdict() on error
Problem: leaking memory in exe_newdict() on error
(LuMingYinDetect)
Solution: free allocated dict if GA_GROW_FALIS()
fixes: #14255
closes: #14281
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/version.c b/src/version.c
index a9515d6..2061fec 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 209,
+/**/
208,
/**/
207,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 1efed35..3e6aed0 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -260,7 +260,10 @@
if (count > 0)
ectx->ec_stack.ga_len -= 2 * count - 1;
else if (GA_GROW_FAILS(&ectx->ec_stack, 1))
+ {
+ dict_unref(dict);
return FAIL;
+ }
else
++ectx->ec_stack.ga_len;
tv = STACK_TV_BOT(-1);