changeset 34649:353ff4d1c039 v9.1.0209

patch 9.1.0209: leaking memory in exe_newdict() on error Commit: https://github.com/vim/vim/commit/86eddced7e2e15e4a51af2009ffaeca8028291be Author: Christian Brabandt <cb@256bit.org> Date: Tue Mar 26 18:42:52 2024 +0100 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>
author Christian Brabandt <cb@256bit.org>
date Tue, 26 Mar 2024 18:45:04 +0100
parents 3cc3eb9ff52d
children db219dbcb076
files src/version.c src/vim9execute.c
diffstat 2 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    209,
+/**/
     208,
 /**/
     207,
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -260,7 +260,10 @@ exe_newdict(int count, ectx_T *ectx)
     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);