# HG changeset patch # User Christian Brabandt # Date 1711475104 -3600 # Node ID 353ff4d1c03975a1a29bf417c72b04c7dd50929f # Parent 3cc3eb9ff52df1ffc5d26a0265eaecfd4a44fd9d patch 9.1.0209: leaking memory in exe_newdict() on error Commit: https://github.com/vim/vim/commit/86eddced7e2e15e4a51af2009ffaeca8028291be Author: Christian Brabandt 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 diff --git a/src/version.c b/src/version.c --- 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, diff --git a/src/vim9execute.c b/src/vim9execute.c --- 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);