Message ID | 1469933384-16827-1-git-send-email-alexander.levin@verizon.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Hello. On 7/31/2016 5:49 AM, Levin, Alexander wrote: > Off by one in nic_config_loopback would access an invalid arrat variable when Array? > vf id == MAX_LMAC. > > Signed-off-by: Sasha Levin <alexander.levin@verizon.com> [...] MBR, Sergei
Thanks for finding. A much better fix would be, - if (lbk->vf_id > MAX_LMAC) + if (lbk->vf_id >= nic->num_vf_en) return -1; where 'num_vf_en' reflects the exact number of physical interfaces or LMACs on the system. Thanks, Sunil.
diff --git a/drivers/net/ethernet/cavium/thunder/nic_main.c b/drivers/net/ethernet/cavium/thunder/nic_main.c index 16ed203..a70f50d 100644 --- a/drivers/net/ethernet/cavium/thunder/nic_main.c +++ b/drivers/net/ethernet/cavium/thunder/nic_main.c @@ -615,7 +615,7 @@ static int nic_config_loopback(struct nicpf *nic, struct set_loopback *lbk) { int bgx_idx, lmac_idx; - if (lbk->vf_id > MAX_LMAC) + if (lbk->vf_id >= MAX_LMAC) return -1; bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lbk->vf_id]);
Off by one in nic_config_loopback would access an invalid arrat variable when vf id == MAX_LMAC. Signed-off-by: Sasha Levin <alexander.levin@verizon.com> --- drivers/net/ethernet/cavium/thunder/nic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)