From 5aa0860d0a5188f35faed95088688708a749cc0c Mon Sep 17 00:00:00 2001 From: Huihui Huang <625173@qq.com> Date: Thu, 26 Feb 2026 20:41:11 +0000 Subject: [PATCH] patch 9.2.0063: memory leak in type_name_list_or_dict() Problem: memory leak in type_name_list_or_dict() Solution: Free the variable member_free on early returns (Huihui Huang). closes: #19513 Signed-off-by: Huihui Huang <625173@qq.com> Signed-off-by: Christian Brabandt --- src/version.c | 2 ++ src/vim9type.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/version.c b/src/version.c index dfc0431b17..3be9225805 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 63, /**/ 62, /**/ diff --git a/src/vim9type.c b/src/vim9type.c index be578f26b4..3d9282f601 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -2573,7 +2573,10 @@ type_name_list_or_dict(char *name, type_T *type, char **tofree) size_t len = STRLEN(name) + STRLEN(member_name) + 3; *tofree = alloc(len); if (*tofree == NULL) + { + vim_free(member_free); return name; + } vim_snprintf(*tofree, len, "%s<%s>", name, member_name); vim_free(member_free);