From: Christian Brabandt Date: Tue, 26 Mar 2024 17:42:52 +0000 (+0100) Subject: patch 9.1.0209: leaking memory in exe_newdict() on error X-Git-Tag: v9.1.0209^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=86eddced7e2e15e4a51af2009ffaeca8028291be;p=thirdparty%2Fvim.git 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 index a9515d6893..2061fec42e 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 209, /**/ 208, /**/ diff --git a/src/vim9execute.c b/src/vim9execute.c index 1efed35283..3e6aed0815 100644 --- 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);