From: Donald Sharp Date: Mon, 5 Feb 2018 13:34:47 +0000 (-0500) Subject: bgpd, pimd: Handle return code for nexthop_decode X-Git-Tag: frr-5.0-dev~247^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=7d30a95973ee3b5f28ce7315bc331fde694b1305;p=mirror%2Ffrr.git bgpd, pimd: Handle return code for nexthop_decode Appropriately handle the return code for the zapi_nexthop_update_decode call. Signed-off-by: Donald Sharp --- diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index e595a15196..d39fbec86d 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -338,7 +338,12 @@ void bgp_parse_nexthop_update(int command, vrf_id_t vrf_id) return; } - zapi_nexthop_update_decode(zclient->ibuf, &nhr); + if (!zapi_nexthop_update_decode(zclient->ibuf, &nhr)) { + if (BGP_DEBUG(nht, NHT)) + zlog_debug("%s: Failure to decode nexthop update", + __PRETTY_FUNCTION__); + return; + } if (command == ZEBRA_NEXTHOP_UPDATE) rn = bgp_node_lookup( diff --git a/pimd/pim_nht.c b/pimd/pim_nht.c index 7b35ca0209..5b297253b2 100644 --- a/pimd/pim_nht.c +++ b/pimd/pim_nht.c @@ -625,7 +625,12 @@ int pim_parse_nexthop_update(int command, struct zclient *zclient, return 0; pim = vrf->info; - zapi_nexthop_update_decode(zclient->ibuf, &nhr); + if (!zapi_nexthop_update_decode(zclient->ibuf, &nhr)) { + if (PIM_DEBUG_PIM_NHT) + zlog_debug("%s: Decode of nexthop update from zebra failed", + __PRETTY_FUNCTION__); + return 0; + } if (command == ZEBRA_NEXTHOP_UPDATE) { prefix_copy(&rpf.rpf_addr, &nhr.prefix);