Subject: Re: Coverity: igc_hash_mc_addr(): Integer handling issues

From: "Neftin, Sasha" <[email-masked]>
Date: Wed, 30 Oct 2019 18:17:22 +0200

On 10/29/2019 01:06, coverity-bot wrote:
> Hello!
> 
> This is an experimental automated report about issues detected by Coverity
> from a scan of next-20191025 as part of the linux-next weekly scan project:
> https://scan.coverity.com/projects/linux-next-weekly-scan
> 
> You're getting this email because you were associated with the identified
> lines of code (noted below) that were touched by recent commits:
> 
> 7f839684c5c4 ("igc: Add set_rx_mode support")
> 
> Coverity reported the following:
> 
> *** CID 1487361:  Integer handling issues  (BAD_SHIFT)
> /drivers/net/ethernet/intel/igc/igc_mac.c: 851 in igc_hash_mc_addr()
> 845     		break;
> 846     	case 3:
> 847     		bit_shift += 4;
> 848     		break;
> 849     	}
> 850
> vvv     CID 1487361:  Integer handling issues  (BAD_SHIFT)
> vvv     In expression "mc_addr[4] >> 8 - bit_shift", right shifting "mc_addr[4]" by more than 7 bits always yields zero.  The shift amount, "8 - bit_shift", is 8.
> 851     	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
> 852     				  (((u16)mc_addr[5]) << bit_shift)));
> 853
> 854     	return hash_value;
> 855     }
> 856
> 
> If this is a false positive, please let us know so we can mark it as
> such, or teach the Coverity rules to be smarter. If not, please make
> sure fixes get into linux-next. :) For patches fixing this, please
> include:
We will provide a fix for multicast table array hashing.
Thanks,
Sasha
> 
> Reported-by: coverity-bot <[email-masked]>
> Addresses-Coverity-ID: 1487361 ("Integer handling issues")
> Fixes: 7f839684c5c4 ("igc: Add set_rx_mode support")
> 
> 
> Thanks for your attention!
>