]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Check for peer before dereferencing it
authorDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 20 Mar 2018 22:50:22 +0000 (18:50 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 20 Mar 2018 22:50:22 +0000 (18:50 -0400)
Check for the peer structure passed in to be valid
before we deref it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_network.c

index 71454dfe03c15ef72fda0e58e3afb7e98c98a429..37d06c1e53ad9373a07a692ca7b7b715cfedbed1 100644 (file)
@@ -447,6 +447,9 @@ static char *bgp_get_bound_name(struct peer *peer)
 {
        char *name = NULL;
 
+       if (!peer)
+               return NULL;
+
        if ((peer->bgp->vrf_id == VRF_DEFAULT) && !peer->ifname
            && !peer->conf_if)
                return NULL;
@@ -455,8 +458,6 @@ static char *bgp_get_bound_name(struct peer *peer)
            && peer->su.sa.sa_family != AF_INET6)
                return NULL; // unexpected
 
-       if (!peer)
-               return name;
        /* For IPv6 peering, interface (unnumbered or link-local with interface)
         * takes precedence over VRF. For IPv4 peering, explicit interface or
         * VRF are the situations to bind.