aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorAndrej Zieger <jerdna-regeiz@users.noreply.github.com>2019-05-17 12:20:22 +0200
committerAndrej Zieger <jerdna-regeiz@users.noreply.github.com>2019-05-26 19:32:31 +0200
commit88720c626eadc7626ad64ff31eeefcdc69ed176a (patch)
tree206bbc8bc8bb13dc36218ac3f5d48796a4709684 /src/nvim/eval.c
parent09c236ba5c03732a7d7aa5f14f602d6f130f0057 (diff)
downloadrneovim-88720c626eadc7626ad64ff31eeefcdc69ed176a.tar.gz
rneovim-88720c626eadc7626ad64ff31eeefcdc69ed176a.tar.bz2
rneovim-88720c626eadc7626ad64ff31eeefcdc69ed176a.zip
vim-patch:8.1.0660: sign_cleanup() may leak memory
Problem: sign_cleanup() may leak memory. Solution: Free the group name before returning. Add a few more tests. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/1ea88a3e12e5f6afc5353cd0d6e6d4f4a89ced94
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index cbe2a89b5b..ed47d27613 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -15717,7 +15717,7 @@ f_sign_unplace(typval_T *argvars, typval_T *rettv)
if (argvars[1].v_type != VAR_DICT)
{
EMSG(_(e_dictreq));
- return;
+ goto cleanup;
}
dict = argvars[1].vval.v_dict;
@@ -15728,7 +15728,7 @@ f_sign_unplace(typval_T *argvars, typval_T *rettv)
{
EMSG2(_("E158: Invalid buffer name: %s"),
tv_get_string(&di->di_tv));
- return;
+ goto cleanup;
}
}
if (tv_dict_find(dict, (char_u *)"id", -1) != NULL)
@@ -15747,6 +15747,8 @@ f_sign_unplace(typval_T *argvars, typval_T *rettv)
if (sign_unplace(sign_id, group, buf, 0) == OK)
rettv->vval.v_number = 0;
}
+
+cleanup:
xfree(group);
}