From 1230a82d5b3165a200ee8b6742149e06f84aad58 Mon Sep 17 00:00:00 2001 From: "F. Aragon" Date: Fri, 29 Jun 2018 17:14:23 +0200 Subject: [PATCH] bgpd isisd: null check (Clang scan) This correction fixes three bugs detected by Clang scan: Bug Group: Logic error Bug Type: Dereference of null pointer File: bgpd/bgp_evpn.c Function: bgp_evpn_unconfigure_import_rt_for_vrf Line: 4246 File: isisd/isis_spf.c Function: isis_print_paths Line: 69 (two bugs of same type in one line) Signed-off-by: F. Aragon --- bgpd/bgp_evpn.c | 2 +- isisd/isis_spf.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index 0557bbcce9..480c7bc63a 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -4243,7 +4243,7 @@ void bgp_evpn_unconfigure_import_rt_for_vrf(struct bgp *bgp_vrf, list_delete_node(bgp_vrf->vrf_import_rtl, node_to_del); /* fallback to auto import rt, if this was the last RT */ - if (list_isempty(bgp_vrf->vrf_import_rtl)) { + if (bgp_vrf->vrf_import_rtl && list_isempty(bgp_vrf->vrf_import_rtl)) { UNSET_FLAG(bgp_vrf->vrf_flags, BGP_VRF_IMPORT_RT_CFGD); evpn_auto_rt_import_add_for_vrf(bgp_vrf); } diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index 2e2933db33..556f2890cf 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -1473,8 +1473,9 @@ static void isis_print_paths(struct vty *vty, struct isis_vertex_queue *queue, vty_out(vty, "%-20s %-12s %-6u ", vid2string(vertex, buff, sizeof(buff)), vtype2string(vertex->type), vertex->d_N); - for (unsigned int i = 0; i < MAX(listcount(vertex->Adj_N), - listcount(vertex->parents)); + for (unsigned int i = 0; + i < MAX(vertex->Adj_N ? listcount(vertex->Adj_N) : 0, + vertex->parents ? listcount(vertex->parents) : 0); i++) { if (anode) { adj = listgetdata(anode); -- 2.39.5