From: Mitch Williams Date: Tue, 31 Mar 2015 07:45:00 +0000 (-0700) Subject: i40e: validate VSI param from VFs X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=b57459e913afeca56b43b09f35588e3e8b2b0f26;p=linux-beck.git i40e: validate VSI param from VFs Validate that the VF has sent us a valid VSI index before actually using that index. Without this code, a malicious or buggy VF driver could panic the host by sending an invalid index into the VSI array. Change-ID: I66a177687a0dcc281ec83e714d3813d70d18c8b4 Reported-by: Nick Nunley Signed-off-by: Mitch Williams Tested-by: Jim Young Signed-off-by: Jeff Kirsher --- diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c index 0a93684130b9..bb184122f563 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c @@ -57,6 +57,8 @@ static inline bool i40e_vc_isvalid_vsi_id(struct i40e_vf *vf, u8 vsi_id) { struct i40e_pf *pf = vf->pf; + if (vsi_id > pf->num_alloc_vsi) + return false; return pf->vsi[vsi_id]->vf_id == vf->vf_id; }