patch 9.1.1063: too many strlen() calls in userfunc.c
Problem: too many strlen() calls in userfunc.c
Solution: refactor userfunc.c and remove calls to strlen(),
drop set_ufunc_name() and roll it into alloc_ufunc(),
check for out-of-memory condition in trans_function_name_ext()
(John Marriott)
closes: #16537
Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/dict.c b/src/dict.c
index 8f0db7e..7975904 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -544,7 +544,7 @@
if (item == NULL)
return FAIL;
item->di_tv.v_type = VAR_FUNC;
- item->di_tv.vval.v_string = vim_strsave(fp->uf_name);
+ item->di_tv.vval.v_string = vim_strnsave(fp->uf_name, fp->uf_namelen);
if (dict_add(d, item) == FAIL)
{
dictitem_free(item);