Mercurial > vim
diff src/evalfunc.c @ 15304:5bfdce4de97f v8.1.0660
patch 8.1.0660: sign_cleanup() may leak memory
commit https://github.com/vim/vim/commit/1ea88a3e12e5f6afc5353cd0d6e6d4f4a89ced94
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Dec 29 21:00:27 2018 +0100
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 29 Dec 2018 21:15:05 +0100 |
parents | 890203d87ee5 |
children | a6330a49e036 |
line wrap: on
line diff
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -11578,7 +11578,7 @@ f_sign_unplace(typval_T *argvars, typval if (argvars[1].v_type != VAR_DICT) { EMSG(_(e_dictreq)); - return; + goto cleanup; } dict = argvars[1].vval.v_dict; @@ -11589,7 +11589,7 @@ f_sign_unplace(typval_T *argvars, typval { EMSG2(_("E158: Invalid buffer name: %s"), tv_get_string(&di->di_tv)); - return; + goto cleanup; } } if (dict_find(dict, (char_u *)"id", -1) != NULL) @@ -11608,6 +11608,8 @@ f_sign_unplace(typval_T *argvars, typval if (sign_unplace(sign_id, group, buf, 0) == OK) rettv->vval.v_number = 0; } + +cleanup: vim_free(group); } #endif