Subject: RE: Coverity: irdma_prm_get_pbles(): Integer handling issues

From: "Saleem, Shiraz" <[email-masked]>
Date: Tue, 15 Jun 2021 15:58:57 +0000

> Subject: Coverity: irdma_prm_get_pbles(): Integer handling issues
> 
> Hello!
> 
> This is an experimental semi-automated report about issues detected by Coverity
> from a scan of next-20210608 as part of the linux-next 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 commits:
> 
>   Wed Jun 2 19:55:19 2021 -0300
>     915cc7ac0f8e ("RDMA/irdma: Add miscellaneous utility definitions")
> 
> Coverity reported the following:
> 
> *** CID 1505157:  Integer handling issues  (OVERFLOW_BEFORE_WIDEN)
> /drivers/infiniband/hw/irdma/utils.c: 2329 in irdma_prm_get_pbles()
> 2323     	struct list_head *chunk_entry = pprm->clist.next;
> 2324     	u32 offset;
> 2325     	unsigned long flags;
> 2326     	*vaddr = 0;
> 2327     	*fpm_addr = 0;
> 2328
> vvv     CID 1505157:  Integer handling issues  (OVERFLOW_BEFORE_WIDEN)
> vvv     Potentially overflowing expression "1 << pprm->pble_shift" with type "int"
> (32 bits, signed) is evaluated using 32-bit arithmetic, and then used in a context
> that expects an expression of type "u64" (64 bits, unsigned).
> 2329     	bits_needed = (mem_size + (1 << pprm->pble_shift) - 1) >> pprm-
> >pble_shift;
> 2330
> 2331     	spin_lock_irqsave(&pprm->prm_lock, flags);
> 2332     	while (chunk_entry != &pprm->clist) {
> 2333     		pchunk = (struct irdma_chunk *)chunk_entry;
> 2334     		bit_idx = bitmap_find_next_zero_area(pchunk->bitmapbuf,
> 
> 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 these lines (but double-check the "Fixes"
> first):
> 
> Reported-by: coverity-bot <[email-masked]>
> Addresses-Coverity-ID: 1505157 ("Integer handling issues")
> Fixes: 915cc7ac0f8e ("RDMA/irdma: Add miscellaneous utility definitions")
> 
> Thanks for your attention!

This appears to be a bug. We will send a fix.

Shiraz