From 623973dc1f0bb3d043d8cc869b0c05ee5185e341 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Tue, 4 Oct 2022 13:11:53 +0000 Subject: [PATCH] Backport https://gerrit.fd.io/r/c/vpp/+/36961 --- lcpng_nl_sync.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lcpng_nl_sync.c b/lcpng_nl_sync.c index f98686b..5fcf0db 100644 --- a/lcpng_nl_sync.c +++ b/lcpng_nl_sync.c @@ -958,6 +958,7 @@ lcp_nl_neigh_add (struct rtnl_neigh *rn) struct nl_addr *ll; ip_address_t nh; int state; + struct nl_addr *rna; NL_DBG ("neigh_add: netlink %U", format_nl_object, rn); @@ -974,7 +975,12 @@ lcp_nl_neigh_add (struct rtnl_neigh *rn) return; } - lcp_nl_mk_ip_addr (rtnl_neigh_get_dst (rn), &nh); + if ((rna = rtnl_neigh_get_dst (rn)) == NULL) + { + NL_DBG ("neigh_del: ignore missing neighbor %U", format_nl_object, rn); + return; + } + lcp_nl_mk_ip_addr (rna, &nh); ll = rtnl_neigh_get_lladdr (rn); state = rtnl_neigh_get_state (rn); @@ -1014,6 +1020,7 @@ lcp_nl_neigh_del (struct rtnl_neigh *rn) { ip_address_t nh; int rv; + struct nl_addr *rna; NL_DBG ("neigh_del: netlink %U", format_nl_object, rn); lcp_itf_pair_t *lip; @@ -1030,7 +1037,12 @@ lcp_nl_neigh_del (struct rtnl_neigh *rn) return; } - lcp_nl_mk_ip_addr (rtnl_neigh_get_dst (rn), &nh); + if ((rna = rtnl_neigh_get_dst (rn)) == NULL) + { + NL_DBG ("neigh_del: ignore missing neighbor %U", format_nl_object, rn); + return; + } + lcp_nl_mk_ip_addr (rna, &nh); rv = ip_neighbor_del (&nh, lip->lip_phy_sw_if_index); if (rv == 0 || rv == VNET_API_ERROR_NO_SUCH_ENTRY)