Problem: Memory leak in type_name_func() on alloc failure (Ao Xijie)
Solution: Free ret_free variable on failure
related: #20668
Supported by AI.
Signed-off-by: Christian Brabandt <cb@256bit.org>
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 779,
/**/
778,
/**/
STRCPY((char *)ga.ga_data + ga.ga_len, ")");
else
{
- char *ret_free;
+ char *ret_free = NULL;
char *ret_name = type_name(type->tt_member, &ret_free);
int len;
len = (int)STRLEN(ret_name) + 4;
if (ga_grow(&ga, len) == FAIL)
+ {
+ vim_free(ret_free);
goto failed;
+ }
STRCPY((char *)ga.ga_data + ga.ga_len, "): ");
STRCPY((char *)ga.ga_data + ga.ga_len + 3, ret_name);
vim_free(ret_free);