Skip to contentSkip to conversation

Coverity: irdma_prm_get_pbles(): Integer handling issues

DISCUSSION coverity-bot 2 participants 2 messages Jun 8, 2021 – Jun 15, 2021 Linux-next tree

lore
Share & tools
lore
#0 lore raw

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):

Addresses-Coverity-ID: 1505157 ("Integer handling issues")

Fixes 915cc7ac0f8e ("RDMA/irdma: Add miscellaneous utility definitions")

Thanks for your attention!

Signature · 1 line
Coverity-bot
#1 lore raw
Quoted 41 lines

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-

Quoted 1 line

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):

Quoted 5 lines

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