0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

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>
This commit is contained in:
Christian Brabandt
2024-03-26 18:42:52 +01:00
parent 65e580bd56
commit 86eddced7e
2 changed files with 5 additions and 0 deletions

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
209,
/**/ /**/
208, 208,
/**/ /**/

View File

@@ -260,7 +260,10 @@ exe_newdict(int count, ectx_T *ectx)
if (count > 0) if (count > 0)
ectx->ec_stack.ga_len -= 2 * count - 1; ectx->ec_stack.ga_len -= 2 * count - 1;
else if (GA_GROW_FAILS(&ectx->ec_stack, 1)) else if (GA_GROW_FAILS(&ectx->ec_stack, 1))
{
dict_unref(dict);
return FAIL; return FAIL;
}
else else
++ectx->ec_stack.ga_len; ++ectx->ec_stack.ga_len;
tv = STACK_TV_BOT(-1); tv = STACK_TV_BOT(-1);