summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_attr_evpn.c4
-rw-r--r--bgpd/rfapi/rfapi_vty.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/bgpd/bgp_attr_evpn.c b/bgpd/bgp_attr_evpn.c
index 09b71e5d64..e528fadedd 100644
--- a/bgpd/bgp_attr_evpn.c
+++ b/bgpd/bgp_attr_evpn.c
@@ -53,8 +53,10 @@ void bgp_add_routermac_ecom(struct attr *attr, struct ethaddr *routermac)
routermac_ecom.val[0] = ECOMMUNITY_ENCODE_EVPN;
routermac_ecom.val[1] = ECOMMUNITY_EVPN_SUBTYPE_ROUTERMAC;
memcpy(&routermac_ecom.val[2], routermac->octet, ETH_ALEN);
- if (!ecomm)
+ if (!ecomm) {
bgp_attr_set_ecommunity(attr, ecommunity_new());
+ ecomm = bgp_attr_get_ecommunity(attr);
+ }
ecommunity_add_val(ecomm, &routermac_ecom, false, false);
ecommunity_str(ecomm);
}
diff --git a/bgpd/rfapi/rfapi_vty.c b/bgpd/rfapi/rfapi_vty.c
index 6c08168cf6..174fadc23e 100644
--- a/bgpd/rfapi/rfapi_vty.c
+++ b/bgpd/rfapi/rfapi_vty.c
@@ -467,7 +467,7 @@ void rfapiPrintAttrPtrs(void *stream, struct attr *attr)
struct transit *transit;
struct cluster_list *cluster;
char buf[BUFSIZ];
- struct ecommunity *ecomm = bgp_attr_get_ecommunity(attr);
+ struct ecommunity *ecomm;
if (rfapiStream2Vty(stream, &fp, &vty, &out, &vty_newline) == 0)
return;
@@ -485,6 +485,7 @@ void rfapiPrintAttrPtrs(void *stream, struct attr *attr)
fp(out, " community=%p, refcnt=%d%s", attr->community,
(attr->community ? attr->community->refcnt : 0), HVTYNL);
+ ecomm = bgp_attr_get_ecommunity(attr);
fp(out, " ecommunity=%p, refcnt=%d%s", ecomm,
(ecomm ? ecomm->refcnt : 0), HVTYNL);