diff --git a/bgpd/bgp_updgrp_adv.c b/bgpd/bgp_updgrp_adv.c index 7ecebe3020..e0f59c42e6 100644 --- a/bgpd/bgp_updgrp_adv.c +++ b/bgpd/bgp_updgrp_adv.c @@ -830,6 +830,7 @@ void subgroup_default_originate(struct update_subgroup *subgrp, bool withdraw) struct bgp *bgp; struct attr attr; struct attr *new_attr = &attr; + struct aspath *aspath; struct prefix p; struct peer *from; struct bgp_dest *dest; @@ -867,6 +868,7 @@ void subgroup_default_originate(struct update_subgroup *subgrp, bool withdraw) /* make coverity happy */ assert(attr.aspath); + aspath = attr.aspath; attr.med = 0; attr.flag |= ATTR_FLAG_BIT(BGP_ATTR_MULTI_EXIT_DISC); @@ -1022,7 +1024,7 @@ void subgroup_default_originate(struct update_subgroup *subgrp, bool withdraw) } } - aspath_unintern(&attr.aspath); + aspath_unintern(&aspath); } /*