From 89d5934783f4da13775f52b2a287aca4df3079cd Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 11 Apr 2018 12:41:55 -0400 Subject: [PATCH] bgpd: Fix SA warning found by clang. Quiet the SA warning, with an assert. Signed-off-by: Donald Sharp --- bgpd/bgp_mplsvpn.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c index e0f5e2bc0a..ca8ffdffcd 100644 --- a/bgpd/bgp_mplsvpn.c +++ b/bgpd/bgp_mplsvpn.c @@ -1557,6 +1557,18 @@ void vrf_unimport_from_vrf(struct bgp *bgp, struct bgp *vrf_bgp, vpn_leak_postchange(idir, afi, bgp_get_default(), bgp); } + /* + * What? + * So SA is assuming that since the ALL_LIST_ELEMENTS_RO + * below is checking for NULL that export_vrf can be + * NULL, consequently it is complaining( like a cabbage ) + * that we could dereference and crash in the listcount(..) + * check below. + * So make it happy, under protest, with liberty and justice + * for all. + */ + assert(vrf_bgp->vpn_policy[afi].export_vrf); + /* Remove us from "import_vrf's" export list. If no other VRF * is importing from "import_vrf", cleanup appropriately. */