From: Donald Sharp Date: Wed, 14 Jun 2017 23:59:02 +0000 (-0400) Subject: pimd: Wisely delay startup of msdp listen/connect when vrf is not fully up X-Git-Tag: frr-4.0-dev~468^2~47 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=449a3f5b10eca91786482d2a5d063cd4a69de84d;p=mirror%2Ffrr.git pimd: Wisely delay startup of msdp listen/connect when vrf is not fully up When we do not really have the vrf up, wisely do not attempt to dereference the ifp looked up. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_msdp_socket.c b/pimd/pim_msdp_socket.c index b8c103fe27..9473462e63 100644 --- a/pimd/pim_msdp_socket.c +++ b/pimd/pim_msdp_socket.c @@ -153,6 +153,11 @@ int pim_msdp_sock_listen(struct pim_instance *pim) if (pim->vrf_id != VRF_DEFAULT) { struct interface *ifp = if_lookup_by_name(pim->vrf->name, pim->vrf_id); + if (!ifp) { + zlog_err("%s: Unable to lookup vrf interface: %s", + __PRETTY_FUNCTION__, pim->vrf->name); + return -1; + } pim_socket_bind(sock, ifp); } @@ -226,6 +231,11 @@ int pim_msdp_sock_connect(struct pim_msdp_peer *mp) if (mp->pim->vrf_id != VRF_DEFAULT) { struct interface *ifp = if_lookup_by_name(mp->pim->vrf->name, mp->pim->vrf_id); + if (!ifp) { + zlog_err("%s: Unable to lookup vrf interface: %s", + __PRETTY_FUNCTION__, mp->pim->vrf->name); + return -1; + } pim_socket_bind(mp->fd, ifp); }