diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index b190e0923f..142b395a21 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -3540,14 +3540,7 @@ static int delete_withdraw_vni_routes(struct bgp *bgp, struct bgpevpn *vpn) */ static void update_router_id_vni(struct hash_backet *backet, struct bgp *bgp) { - struct bgpevpn *vpn; - - vpn = (struct bgpevpn *)backet->data; - - if (!vpn) { - zlog_warn("%s: VNI hash entry for VNI not found", __FUNCTION__); - return; - } + struct bgpevpn *vpn = (struct bgpevpn *)backet->data; /* Skip VNIs with configured RD. */ if (is_rd_configured(vpn)) @@ -3565,14 +3558,7 @@ static void update_router_id_vni(struct hash_backet *backet, struct bgp *bgp) */ static void withdraw_router_id_vni(struct hash_backet *backet, struct bgp *bgp) { - struct bgpevpn *vpn; - - vpn = (struct bgpevpn *)backet->data; - - if (!vpn) { - zlog_warn("%s: VNI hash entry for VNI not found", __FUNCTION__); - return; - } + struct bgpevpn *vpn = (struct bgpevpn *)backet->data; /* Skip VNIs with configured RD. */ if (is_rd_configured(vpn)) @@ -4016,9 +4002,8 @@ static void cleanup_vni_on_disable(struct hash_backet *backet, struct bgp *bgp) */ static void free_vni_entry(struct hash_backet *backet, struct bgp *bgp) { - struct bgpevpn *vpn; + struct bgpevpn *vpn = (struct bgpevpn *)backet->data; - vpn = (struct bgpevpn *)backet->data; delete_all_vni_routes(bgp, vpn); bgp_evpn_free(bgp, vpn); } @@ -4090,11 +4075,6 @@ static void update_autort_vni(struct hash_backet *backet, struct bgp *bgp) { struct bgpevpn *vpn = backet->data; - if (!vpn) { - zlog_warn("%s: VNI hash entry for VNI not found", __PRETTY_FUNCTION__); - return; - } - if (!is_import_rt_configured(vpn)) { if (is_vni_live(vpn)) bgp_evpn_uninstall_routes(bgp, vpn); @@ -5251,13 +5231,12 @@ int bgp_evpn_local_macip_add(struct bgp *bgp, vni_t vni, struct ethaddr *mac, static void link_l2vni_hash_to_l3vni(struct hash_backet *backet, struct bgp *bgp_vrf) { - struct bgpevpn *vpn = NULL; + struct bgpevpn *vpn = (struct bgpevpn *)backet->data; struct bgp *bgp_def = NULL; bgp_def = bgp_get_default(); assert(bgp_def); - vpn = (struct bgpevpn *)backet->data; if (vpn->tenant_vrf_id == bgp_vrf->vrf_id) bgpevpn_link_to_l3vni(vpn); } diff --git a/lib/hash.h b/lib/hash.h index 12c214e469..2b4ea48f38 100644 --- a/lib/hash.h +++ b/lib/hash.h @@ -167,7 +167,9 @@ hash_create_size(unsigned int size, unsigned int (*hash_key)(void *), * hash table to operate on * * data - * data to insert or retrieve + * data to insert or retrieve - A hash backet will not be created if + * the alloc_func returns a NULL pointer and nothing will be added to + * the hash. As such backet->data will always be non-NULL. * * alloc_func * function to call if the item is not found in the hash table. This @@ -236,6 +238,8 @@ extern void *hash_release(struct hash *hash, void *data); * during the walk will cause undefined behavior in that some new entries * will be walked and some will not. So do not do this. * + * The backet passed to func will have a non-NULL data pointer. + * * hash * hash table to operate on * @@ -256,6 +260,8 @@ extern void hash_iterate(struct hash *hash, * during the walk will cause undefined behavior in that some new entries * will be walked and some will not. So do not do this. * + * The backet passed to func will have a non-NULL data pointer. + * * hash * hash table to operate on * diff --git a/lib/routemap.c b/lib/routemap.c index 4e8682f312..4125bb53ae 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -1545,7 +1545,7 @@ static void route_map_clear_reference(struct hash_backet *backet, void *arg) struct route_map_dep *dep = (struct route_map_dep *)backet->data; char *rmap_name; - if (dep && arg) { + if (arg) { rmap_name = (char *)hash_release(dep->dep_rmap_hash, (void *)arg); if (rmap_name) { @@ -1601,9 +1601,8 @@ static void route_map_print_dependency(struct hash_backet *backet, void *data) char *rmap_name = (char *)backet->data; char *dep_name = (char *)data; - if (rmap_name) - zlog_debug("%s: Dependency for %s: %s", __FUNCTION__, dep_name, - rmap_name); + zlog_debug("%s: Dependency for %s: %s", __FUNCTION__, dep_name, + rmap_name); } static int route_map_dep_update(struct hash *dephash, const char *dep_name, @@ -1725,18 +1724,14 @@ static struct hash *route_map_get_dep_hash(route_map_event_t event) static void route_map_process_dependency(struct hash_backet *backet, void *data) { - char *rmap_name; + char *rmap_name = (char *)backet->data; route_map_event_t type = (route_map_event_t)(ptrdiff_t)data; - rmap_name = (char *)backet->data; - - if (rmap_name) { - if (rmap_debug) - zlog_debug("%s: Notifying %s of dependency", - __FUNCTION__, rmap_name); - if (route_map_master.event_hook) - (*route_map_master.event_hook)(type, rmap_name); - } + if (rmap_debug) + zlog_debug("%s: Notifying %s of dependency", + __FUNCTION__, rmap_name); + if (route_map_master.event_hook) + (*route_map_master.event_hook)(type, rmap_name); } void route_map_upd8_dependency(route_map_event_t type, const char *arg, diff --git a/ospfd/ospf_sr.c b/ospfd/ospf_sr.c index 6cb697f3ab..23dae6b087 100644 --- a/ospfd/ospf_sr.c +++ b/ospfd/ospf_sr.c @@ -1538,10 +1538,6 @@ static void ospf_sr_nhlfe_update(struct hash_backet *backet, void *args) struct sr_nhlfe old; int rc; - /* Sanity Check */ - if (srn == NULL) - return; - if (IS_DEBUG_OSPF_SR) zlog_debug(" |- Update Prefix for SR Node %s", inet_ntoa(srn->adv_router)); diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 6eb4303fb7..7c45ce261a 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -2795,9 +2795,6 @@ static int pim_print_pnc_cache_walkcb(struct hash_backet *backet, void *arg) ifindex_t first_ifindex; struct interface *ifp = NULL; - if (!pnc) - return CMD_SUCCESS; - for (nh_node = pnc->nexthop; nh_node; nh_node = nh_node->next) { first_ifindex = nh_node->ifindex; ifp = if_lookup_by_index(first_ifindex, pim->vrf_id); diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c index cd41537a1b..f7283aed36 100644 --- a/zebra/zebra_mpls.c +++ b/zebra/zebra_mpls.c @@ -2446,7 +2446,7 @@ void mpls_ldp_lsp_uninstall_all(struct hash_backet *backet, void *ctxt) struct hash *lsp_table; lsp = (zebra_lsp_t *)backet->data; - if (!lsp || !lsp->nhlfe_list) + if (!lsp->nhlfe_list) return; lsp_table = ctxt; diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c index d979be4a36..04f9be8ade 100644 --- a/zebra/zebra_vxlan.c +++ b/zebra/zebra_vxlan.c @@ -281,8 +281,6 @@ static void zvni_find_neigh_addr_width(struct hash_backet *backet, void *ctxt) int width; n = (zebra_neigh_t *)backet->data; - if (!n) - return; ipaddr2str(&n->ip, buf, sizeof(buf)), width = strlen(buf); if (width > wctx->addr_width) @@ -356,8 +354,6 @@ static void zvni_print_neigh_hash(struct hash_backet *backet, void *ctxt) vty = wctx->vty; json_vni = wctx->json; n = (zebra_neigh_t *)backet->data; - if (!n) - return; if (json_vni) json_row = json_object_new_object(); @@ -436,11 +432,7 @@ static void zvni_print_neigh_hash_all_vni(struct hash_backet *backet, json = (json_object *)args[1]; zvni = (zebra_vni_t *)backet->data; - if (!zvni) { - if (json) - vty_out(vty, "{}\n"); - return; - } + num_neigh = hashcount(zvni->neigh_table); if (json == NULL) { vty_out(vty, @@ -629,8 +621,6 @@ static void zvni_print_mac_hash(struct hash_backet *backet, void *ctxt) vty = wctx->vty; json_mac_hdr = wctx->json; mac = (zebra_mac_t *)backet->data; - if (!mac) - return; prefix_mac2str(&mac->macaddr, buf1, sizeof(buf1)); @@ -736,11 +726,6 @@ static void zvni_print_mac_hash_all_vni(struct hash_backet *backet, void *ctxt) json = (struct json_object *)wctx->json; zvni = (zebra_vni_t *)backet->data; - if (!zvni) { - if (json) - vty_out(vty, "{}\n"); - return; - } wctx->zvni = zvni; /*We are iterating over a new VNI, set the count to 0*/ @@ -795,8 +780,6 @@ static void zl3vni_print_nh_hash(struct hash_backet *backet, void *ctx) if (json_vni) json_nh = json_object_new_object(); n = (zebra_neigh_t *)backet->data; - if (!n) - return; if (!json_vni) { vty_out(vty, "%-15s %-17s\n", @@ -829,11 +812,6 @@ static void zl3vni_print_nh_hash_all_vni(struct hash_backet *backet, json = (struct json_object *)args[1]; zl3vni = (zebra_l3vni_t *)backet->data; - if (!zl3vni) { - if (json) - vty_out(vty, "{}\n"); - return; - } num_nh = hashcount(zl3vni->nh_table); if (!num_nh) @@ -873,11 +851,6 @@ static void zl3vni_print_rmac_hash_all_vni(struct hash_backet *backet, json = (struct json_object *)args[1]; zl3vni = (zebra_l3vni_t *)backet->data; - if (!zl3vni) { - if (json) - vty_out(vty, "{}\n"); - return; - } num_rmacs = hashcount(zl3vni->rmac_table); if (!num_rmacs) @@ -921,8 +894,6 @@ static void zl3vni_print_rmac_hash(struct hash_backet *backet, void *ctx) if (json) json_rmac = json_object_new_object(); zrmac = (zebra_mac_t *)backet->data; - if (!zrmac) - return; if (!json) { vty_out(vty, "%-17s %-21s\n", @@ -1099,8 +1070,6 @@ static void zl3vni_print_hash(struct hash_backet *backet, void *ctx[]) json = (json_object *)ctx[1]; zl3vni = (zebra_l3vni_t *)backet->data; - if (!zl3vni) - return; if (!json) { vty_out(vty, "%-10u %-4s %-21s %-8lu %-8lu %-15s %-37s\n", @@ -1148,8 +1117,6 @@ static void zvni_print_hash(struct hash_backet *backet, void *ctxt[]) json = ctxt[1]; zvni = (zebra_vni_t *)backet->data; - if (!zvni) - return; zvtep = zvni->vteps; while (zvtep) { @@ -1652,8 +1619,6 @@ static void zvni_install_neigh_hash(struct hash_backet *backet, void *ctxt) struct neigh_walk_ctx *wctx = ctxt; n = (zebra_neigh_t *)backet->data; - if (!n) - return; if (CHECK_FLAG(n->flags, ZEBRA_NEIGH_REMOTE)) zvni_neigh_install(wctx->zvni, n); @@ -1920,8 +1885,6 @@ static void zvni_gw_macip_del_for_vni_hash(struct hash_backet *backet, /* Add primary SVI MAC*/ zvni = (zebra_vni_t *)backet->data; - if (!zvni) - return; ifp = zvni->vxlan_if; if (!ifp) @@ -1961,8 +1924,6 @@ static void zvni_gw_macip_add_for_vni_hash(struct hash_backet *backet, struct interface *ifp = NULL; zvni = (zebra_vni_t *)backet->data; - if (!zvni) - return; ifp = zvni->vxlan_if; if (!ifp) @@ -2625,8 +2586,6 @@ static void zvni_install_mac_hash(struct hash_backet *backet, void *ctxt) struct mac_walk_ctx *wctx = ctxt; mac = (zebra_mac_t *)backet->data; - if (!mac) - return; if (CHECK_FLAG(mac->flags, ZEBRA_MAC_REMOTE)) zvni_mac_install(wctx->zvni, mac); @@ -3070,8 +3029,6 @@ static void zvni_cleanup_all(struct hash_backet *backet, void *arg) struct zebra_vrf *zvrf = (struct zebra_vrf *)arg; zvni = (zebra_vni_t *)backet->data; - if (!zvni) - return; /* remove from l3-vni list */ if (zvrf->l3vni) @@ -3096,8 +3053,6 @@ static void zl3vni_cleanup_all(struct hash_backet *backet, void *args) zebra_l3vni_t *zl3vni = NULL; zl3vni = (zebra_l3vni_t *)backet->data; - if (!zl3vni) - return; zebra_vxlan_process_l3vni_oper_down(zl3vni); }