aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/userfunc.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-05-31 14:58:46 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-06-04 20:52:52 -0400
commit2298350884b09e1af45859da23c89d072f7de99b (patch)
tree79eeed3624335735455dc2ac6ed1f370552767a7 /src/nvim/eval/userfunc.c
parentf5c1314cb01164879fb9df6bce01151371c16f7d (diff)
downloadrneovim-2298350884b09e1af45859da23c89d072f7de99b.tar.gz
rneovim-2298350884b09e1af45859da23c89d072f7de99b.tar.bz2
rneovim-2298350884b09e1af45859da23c89d072f7de99b.zip
vim-patch:8.1.0917: double free when running out of memory
Problem: Double free when running out of memory. Solution: Remove one free. (Ken Takata, closes vim/vim#3955) https://github.com/vim/vim/commit/445e71c5ee06015064cf0642cac8190cfe8fbc59
Diffstat (limited to 'src/nvim/eval/userfunc.c')
-rw-r--r--src/nvim/eval/userfunc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c
index c054433255..4d658498c1 100644
--- a/src/nvim/eval/userfunc.c
+++ b/src/nvim/eval/userfunc.c
@@ -170,6 +170,7 @@ int get_lambda_tv(char_u **arg, typval_T *rettv, bool evaluate)
garray_T newargs = GA_EMPTY_INIT_VALUE;
garray_T *pnewargs;
ufunc_T *fp = NULL;
+ partial_T *pt = NULL;
int varargs;
int ret;
char_u *start = skipwhite(*arg + 1);
@@ -219,7 +220,6 @@ int get_lambda_tv(char_u **arg, typval_T *rettv, bool evaluate)
int len, flags = 0;
char_u *p;
char_u name[20];
- partial_T *pt;
garray_T newlines;
lambda_no++;
@@ -274,6 +274,7 @@ int get_lambda_tv(char_u **arg, typval_T *rettv, bool evaluate)
errret:
ga_clear_strings(&newargs);
xfree(fp);
+ xfree(pt);
eval_lavars_used = old_eval_lavars;
return FAIL;
}