diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-05-31 14:58:46 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-06-04 20:52:52 -0400 |
commit | 2298350884b09e1af45859da23c89d072f7de99b (patch) | |
tree | 79eeed3624335735455dc2ac6ed1f370552767a7 /src/nvim/eval/userfunc.c | |
parent | f5c1314cb01164879fb9df6bce01151371c16f7d (diff) | |
download | rneovim-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.c | 3 |
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; } |