| From ef963ae427aa4669905e0a96b3bd9d44dc85db32 Mon Sep 17 00:00:00 2001 |
| From: Colin Ian King <colin.king@canonical.com> |
| Date: Wed, 31 Mar 2021 15:46:28 +0100 |
| Subject: ice: Fix potential infinite loop when using u8 loop counter |
| |
| From: Colin Ian King <colin.king@canonical.com> |
| |
| commit ef963ae427aa4669905e0a96b3bd9d44dc85db32 upstream. |
| |
| A for-loop is using a u8 loop counter that is being compared to |
| a u32 cmp_dcbcfg->numapp to check for the end of the loop. If |
| cmp_dcbcfg->numapp is larger than 255 then the counter j will wrap |
| around to zero and hence an infinite loop occurs. Fix this by making |
| counter j the same type as cmp_dcbcfg->numapp. |
| |
| Addresses-Coverity: ("Infinite loop") |
| Fixes: aeac8ce864d9 ("ice: Recognize 860 as iSCSI port in CEE mode") |
| Signed-off-by: Colin Ian King <colin.king@canonical.com> |
| Tested-by: Tony Brelinski <tonyx.brelinski@intel.com> |
| Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/ice/ice_dcb.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/ethernet/intel/ice/ice_dcb.c |
| +++ b/drivers/net/ethernet/intel/ice/ice_dcb.c |
| @@ -747,8 +747,8 @@ ice_cee_to_dcb_cfg(struct ice_aqc_get_ce |
| struct ice_port_info *pi) |
| { |
| u32 status, tlv_status = le32_to_cpu(cee_cfg->tlv_status); |
| - u32 ice_aqc_cee_status_mask, ice_aqc_cee_status_shift; |
| - u8 i, j, err, sync, oper, app_index, ice_app_sel_type; |
| + u32 ice_aqc_cee_status_mask, ice_aqc_cee_status_shift, j; |
| + u8 i, err, sync, oper, app_index, ice_app_sel_type; |
| u16 app_prio = le16_to_cpu(cee_cfg->oper_app_prio); |
| u16 ice_aqc_cee_app_mask, ice_aqc_cee_app_shift; |
| struct ice_dcbx_cfg *cmp_dcbcfg, *dcbcfg; |