From: Donald Sharp Date: Tue, 20 Mar 2018 22:50:22 +0000 (-0400) Subject: bgpd: Check for peer before dereferencing it X-Git-Tag: frr-5.0-dev~132^2~7 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a2bce1c824d8526ca1ef2a8144f338f98348c628;p=matthieu%2Ffrr.git bgpd: Check for peer before dereferencing it Check for the peer structure passed in to be valid before we deref it. Signed-off-by: Donald Sharp --- diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c index 71454dfe03..37d06c1e53 100644 --- a/bgpd/bgp_network.c +++ b/bgpd/bgp_network.c @@ -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.