> -----Original Message----- > From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Sent: Friday, October 28, 2022 8:02 AM > To: Brandeburg, Jesse <jesse.brandeburg@xxxxxxxxx>; Nambiar, Amritha > <amritha.nambiar@xxxxxxxxx> > Cc: Nguyen, Anthony L <anthony.l.nguyen@xxxxxxxxx>; David S. Miller > <davem@xxxxxxxxxxxxx>; Eric Dumazet <edumazet@xxxxxxxxxx>; Jakub > Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni <pabeni@xxxxxxxxxx>; Samudrala, > Sridhar <sridhar.samudrala@xxxxxxxxx>; Gomes, Vinicius > <vinicius.gomes@xxxxxxxxx>; intel-wired-lan@xxxxxxxxxxxxxxxx; > netdev@xxxxxxxxxxxxxxx; kernel-janitors@xxxxxxxxxxxxxxx > Subject: [PATCH net-next] ice: Fix off by one in ice_tc_forward_to_queue() > > The > comparison should be >= to prevent reading one element beyond > the end of the array. > > The "vsi->num_rxq" is not strictly speaking the number of elements in > the vsi->rxq_map[] array. The array has "vsi->alloc_rxq" elements and > "vsi->num_rxq" is less than or equal to the number of elements in the > array. The array is allocated in ice_vsi_alloc_arrays(). It's still > an off by one but it might not access outside the end of the array. > > Fixes: 143b86f346c7 ("ice: Enable RX queue selection using skbedit action") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Acked-by: Amritha Nambiar <amritha.nambiar@xxxxxxxxx> > --- > Applies to net-next. > > drivers/net/ethernet/intel/ice/ice_tc_lib.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_tc_lib.c > b/drivers/net/ethernet/intel/ice/ice_tc_lib.c > index faba0f857cd9..95f392ab9670 100644 > --- a/drivers/net/ethernet/intel/ice/ice_tc_lib.c > +++ b/drivers/net/ethernet/intel/ice/ice_tc_lib.c > @@ -1681,7 +1681,7 @@ ice_tc_forward_to_queue(struct ice_vsi *vsi, struct > ice_tc_flower_fltr *fltr, > struct ice_vsi *ch_vsi = NULL; > u16 queue = act->rx_queue; > > - if (queue > vsi->num_rxq) { > + if (queue >= vsi->num_rxq) { > NL_SET_ERR_MSG_MOD(fltr->extack, > "Unable to add filter because specified > queue is invalid"); > return -EINVAL; > -- > 2.35.1