Merge pull request #12989 from opensourcerouting/fix/memory_leaks_bgpd

bgpd: Free memory allocated by ecommunity_ecom2str()
This commit is contained in:
Russ White 2023-03-14 10:15:07 -04:00 committed by GitHub
commit e5325ec96a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1124,7 +1124,8 @@ static uint8_t *mplsL3vpnVrfRtTable(struct variable *v, oid name[],
struct bgp *l3vpn_bgp;
uint32_t rt_index = 0;
uint8_t rt_type = 0;
char *rt_b;
char *rt_b = NULL;
static char rt_b_str[BUFSIZ] = {};
if (smux_header_table(v, name, length, exact, var_len, write_method)
== MATCH_FAILED)
@ -1156,14 +1157,16 @@ static uint8_t *mplsL3vpnVrfRtTable(struct variable *v, oid name[],
ECOMMUNITY_ROUTE_TARGET);
break;
default:
rt_b = NULL;
break;
}
if (rt_b)
if (rt_b) {
*var_len = strnlen(rt_b, ECOMMUNITY_STRLEN);
else
strlcpy(rt_b_str, rt_b, sizeof(rt_b_str));
XFREE(MTYPE_ECOMMUNITY_STR, rt_b);
} else {
*var_len = 0;
return (uint8_t *)rt_b;
}
return (uint8_t *)rt_b_str;
case MPLSL3VPNVRFRTDESCR:
/* since we dont have a description generate one */
memset(rt_description, 0, VRF_NAMSIZ + RT_PREAMBLE_SIZE);