]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: Avoid double aspath_dup() for confederation when remote-as != AS_SPECIFIED
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 24 Feb 2023 20:01:15 +0000 (22:01 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 24 Feb 2023 20:03:08 +0000 (22:03 +0200)
Just was blind when not seing it's already dup'ed above:

``` if (peer->sort == BGP_PEER_EBGP
    && (!CHECK_FLAG(peer->af_flags[afi][safi],
    PEER_FLAG_AS_PATH_UNCHANGED)
|| attr->aspath->segments == NULL)
    && (!CHECK_FLAG(peer->af_flags[afi][safi],
    PEER_FLAG_RSERVER_CLIENT))) {
aspath = aspath_dup(attr->aspath); <<<<<<<<<<<<<<<
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_attr.c

index 1e2698cd929465b8b42417fe6b162a8cb3fd66bb..de77bd530463278a84189074165b3f4be51889af 100644 (file)
@@ -4312,7 +4312,6 @@ bgp_size_t bgp_packet_attribute(struct bgp *bgp, struct peer *peer,
                         * if the peer belongs to us.
                         */
                        if (bgp_confederation_peers_check(bgp, peer->as)) {
-                               aspath = aspath_dup(attr->aspath);
                                aspath = aspath_add_confed_seq(aspath,
                                                               peer->local_as);
                        } else {