summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-08-28 10:35:35 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-08-28 10:35:35 -0400
commit5b4256ca42217a449b47987789d59e1729236535 (patch)
treebd84368926833503e43538132202f21e3e21eeb6
parent3e83237244b672aeac1cad360d2e66ea1be20fe9 (diff)
zebra: Fix crash in mroute debug
There exists a possibility that the ifindex we are passed does not exist and as such we should check for it not resolving as part of the debug. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--zebra/rt_netlink.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index cab3f43b19..3683596b41 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -793,15 +793,17 @@ static int netlink_route_change_read_multicast(struct nlmsghdr *h,
ifp = if_lookup_by_index(oif[count], vrf);
char temp[256];
- sprintf(temp, "%s ", ifp->name);
+ sprintf(temp, "%s(%d) ", ifp ? ifp->name : "Unknown",
+ oif[count]);
strcat(oif_list, temp);
}
struct zebra_vrf *zvrf = zebra_vrf_lookup_by_id(vrf);
ifp = if_lookup_by_index(iif, vrf);
- zlog_debug(
- "MCAST VRF: %s(%d) %s (%s,%s) IIF: %s OIF: %s jiffies: %lld",
- zvrf->vrf->name, vrf, nl_msg_type_to_str(h->nlmsg_type),
- sbuf, gbuf, ifp->name, oif_list, m->lastused);
+ zlog_debug("MCAST VRF: %s(%d) %s (%s,%s) IIF: %s(%d) OIF: %s jiffies: %lld",
+ zvrf->vrf->name, vrf,
+ nl_msg_type_to_str(h->nlmsg_type),
+ sbuf, gbuf, ifp ? ifp->name : "Unknown", iif,
+ oif_list, m->lastused);
}
return 0;
}