Commit: patch 9.1.0209: leaking memory in exe_newdict() on error

4 views
Skip to first unread message

Christian Brabandt

unread,
Mar 26, 2024, 1:45:10 PM3/26/24
to vim...@googlegroups.com
patch 9.1.0209: leaking memory in exe_newdict() on error

Commit: https://github.com/vim/vim/commit/86eddced7e2e15e4a51af2009ffaeca8028291be
Author: Christian Brabandt <c...@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 <c...@256bit.org>

diff --git a/src/version.c b/src/version.c
index a9515d689..2061fec42 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 1efed3528..3e6aed081 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);
Reply all
Reply to author
Forward
0 new messages