@@ -1418,7 +1418,7 @@ acl_interface_add_del_inout_acl (u32 sw_if_index, u8 is_add, u8 is_input, } else { - if (sw_if_index > vec_len (*pinout_acl_vec_by_sw_if_index)) + if (sw_if_index >= vec_len (*pinout_acl_vec_by_sw_if_index)) { rv = VNET_API_ERROR_NO_SUCH_ENTRY; goto done; @@ -3457,7 +3457,7 @@ macip_acl_print (acl_main_t * am, u32 macip_acl_index) int i; /* Don't try to print someone else's memory */ - if (macip_acl_index > vec_len (am->macip_acls)) + if (macip_acl_index >= vec_len (am->macip_acls)) return; macip_acl_list_t *a = vec_elt_at_index (am->macip_acls, macip_acl_index); @@ -120,15 +120,10 @@ always_inline fa_session_t * get_session_ptr (acl_main_t * am, u16 thread_index, u32 session_index) { acl_fa_per_worker_data_t *pw = &am->per_worker_data[thread_index]; - if (session_index > vec_len (pw->fa_sessions_pool)) - { - return 0; - } + if (session_index >= vec_len (pw->fa_sessions_pool)) + return 0; - fa_session_t *sess = (session_index > vec_len (pw->fa_sessions_pool)) ? 0 : - pool_elt_at_index (pw->fa_sessions_pool, - session_index); - return sess; + return pool_elt_at_index (pw->fa_sessions_pool, session_index); } always_inline int @@ -368,7 +368,7 @@ format_dpdk_flow (u8 * s, va_list * args) return s; } - if (private_data > vec_len (xd->flow_entries)) + if (private_data >= vec_len (xd->flow_entries)) return format (s, "unknown flow"); fe = vec_elt_at_index (xd->flow_entries, private_data); @@ -562,7 +562,7 @@ svm_fifo_segment_num_free_fifos (svm_fifo_segment_private_t * fifo_segment, freelist_index = max_log2 (rounded_data_size) - max_log2 (FIFO_SEGMENT_MIN_FIFO_SIZE); - if (freelist_index > vec_len (fsh->free_fifos)) + if (freelist_index >= vec_len (fsh->free_fifos)) return 0; f = fsh->free_fifos[freelist_index]; @@ -135,7 +135,7 @@ gre_tunnel_stack (adj_index_t ai) adj = adj_get (ai); sw_if_index = adj->rewrite_header.sw_if_index; - if ((vec_len (gm->tunnel_index_by_sw_if_index) < sw_if_index) || + if ((vec_len (gm->tunnel_index_by_sw_if_index) <= sw_if_index) || (~0 == gm->tunnel_index_by_sw_if_index[sw_if_index])) return; @@ -4247,7 +4247,7 @@ ip6_get_ll_address (u32 sw_if_index, ip6_address_t * addr) ip6_radv_t *radv_info; u32 ri; - if (vec_len (nm->if_radv_pool_index_by_sw_if_index) < sw_if_index) + if (vec_len (nm->if_radv_pool_index_by_sw_if_index) <= sw_if_index) return 0; ri = nm->if_radv_pool_index_by_sw_if_index[sw_if_index]; @@ -355,7 +355,7 @@ ipip_tunnel_t * ipip_tunnel_db_find_by_sw_if_index (u32 sw_if_index) { ipip_main_t *gm = &ipip_main; - if (vec_len (gm->tunnel_index_by_sw_if_index) < sw_if_index) + if (vec_len (gm->tunnel_index_by_sw_if_index) <= sw_if_index) return NULL; u32 ti = gm->tunnel_index_by_sw_if_index[sw_if_index]; if (ti == ~0) @@ -29,7 +29,7 @@ mpls_sw_interface_is_enabled (u32 sw_if_index) { mpls_main_t * mm = &mpls_main; - if (vec_len(mm->mpls_enabled_by_sw_if_index) < sw_if_index) + if (vec_len(mm->mpls_enabled_by_sw_if_index) <= sw_if_index) return (0); return (mm->mpls_enabled_by_sw_if_index[sw_if_index]); @@ -52,7 +52,7 @@ static const char *mpls_tunnel_attribute_names[] = MPLS_TUNNEL_ATTRIBUTES; static mpls_tunnel_t* mpls_tunnel_get_from_sw_if_index (u32 sw_if_index) { - if ((vec_len(mpls_tunnel_db) < sw_if_index) || + if ((vec_len(mpls_tunnel_db) <= sw_if_index) || (~0 == mpls_tunnel_db[sw_if_index])) return (NULL); @@ -131,7 +131,7 @@ vlib_runtime_index_to_node_name (u32 index) vlib_main_t *vm = vlib_get_main (); vlib_node_main_t *nm = &vm->node_main; - if (index > vec_len (nm->nodes)) + if (index >= vec_len (nm->nodes)) { fformat (stderr, "%d out of range, max %d\n", vec_len (nm->nodes)); return; @@ -44,7 +44,7 @@ vnet_dump_trajectory_trace (vlib_main_t * vm, u32 bi) node_index = trace[i]; - if (node_index > vec_len (vnm->nodes)) + if (node_index >= vec_len (vnm->nodes)) { fformat (stderr, "Skip bogus node index %d\n", node_index); continue; @@ -1124,7 +1124,7 @@ vnet_vxlan_get_tunnel_index (u32 sw_if_index) { vxlan_main_t *vxm = &vxlan_main; - if (sw_if_index > vec_len (vxm->tunnel_index_by_sw_if_index)) + if (sw_if_index >= vec_len (vxm->tunnel_index_by_sw_if_index)) return ~0; return vxm->tunnel_index_by_sw_if_index[sw_if_index]; } |