summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-04-04 21:55:23 +0200
committerBram Moolenaar <Bram@vim.org>2021-04-04 21:55:23 +0200
commitf2dd9cb9958962302d33fab8fe6439645a2d1e1b (patch)
tree2cd8a6c7311fbcad6e6c4a10a70a18d7dc57b95a
parent3c49e74e18993915a779cafe4af3749b39fd3e2a (diff)
downloadvim-git-f2dd9cb9958962302d33fab8fe6439645a2d1e1b.tar.gz
patch 8.2.2712: memory leak when adding to a blob failsv8.2.2712
Problem: Memory leak when adding to a blob fails. Solution: Clear the second typval before returning.
-rw-r--r--src/eval.c8
-rw-r--r--src/version.c2
2 files changed, 7 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c
index 55fda77aa..d49264997 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3008,10 +3008,12 @@ eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg)
n1 = tv_get_number_chk(rettv, &error);
if (error)
{
- // This can only happen for "list + non-list". For
- // "non-list + ..." or "something - ...", we returned
- // before evaluating the 2nd operand.
+ // This can only happen for "list + non-list" or
+ // "blob + non-blob". For "non-list + ..." or
+ // "something - ...", we returned before evaluating the
+ // 2nd operand.
clear_tv(rettv);
+ clear_tv(&var2);
return FAIL;
}
#ifdef FEAT_FLOAT
diff --git a/src/version.c b/src/version.c
index c9632c361..986ad77ea 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2712,
+/**/
2711,
/**/
2710,