diff options
author | Christian Brabandt <cb@256bit.org> | 2024-03-26 18:42:52 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-03-26 18:42:52 +0100 |
commit | 86eddced7e2e15e4a51af2009ffaeca8028291be (patch) | |
tree | 54803065ad4c3c5c90294688ab1fa51cfbf9683d /src | |
parent | 65e580bd5610465bb6b9c1a546b7a8d00c76aa47 (diff) |
patch 9.1.0209: leaking memory in exe_newdict() on errorv9.1.0209
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/version.c b/src/version.c index a9515d6893..2061fec42e 100644 --- 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 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); |