]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0209: leaking memory in exe_newdict() on error v9.1.0209
authorChristian Brabandt <cb@256bit.org>
Tue, 26 Mar 2024 17:42:52 +0000 (18:42 +0100)
committerChristian Brabandt <cb@256bit.org>
Tue, 26 Mar 2024 17:42:52 +0000 (18:42 +0100)
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>
src/version.c
src/vim9execute.c

index a9515d68930d87db93bdbb84e99c90a0153bfb94..2061fec42e75944714a5d15a260b317fdaffdb83 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    209,
 /**/
     208,
 /**/
index 1efed35283a9f24244e884cb944b1fe27e435b0c..3e6aed081564d7432c1426f2efc775118ebe452c 100644 (file)
@@ -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);