[dpdk-dev,v2,2/4] net/bnxt: ensure entry_length is unsigned in bnxt_alloc_vnic_attributes

Message ID 1475170776-10130-3-git-send-email-linville@tuxdriver.com (mailing list archive)
State Accepted, archived
Delegated to: Bruce Richardson
Headers

Commit Message

John W. Linville Sept. 29, 2016, 5:39 p.m. UTC
  Otherwise, the inherent cast when multiplying entry_length by max_vnics
in the call to rte_memzone_reserve could promote max_vnics to a signed
value, causing hilarity to ensue...

Coverity issue: 127557
Fixes: 9738793f28ec ("net/bnxt: add VNIC functions and structs")

Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
v2: fix-up changelog entries based-on comments from Ferruh Yigit

 drivers/net/bnxt/bnxt_vnic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ajit Khaparde Sept. 29, 2016, 7:06 p.m. UTC | #1
On Thu, Sep 29, 2016 at 12:39 PM, John W. Linville <linville@tuxdriver.com>
wrote:

> Otherwise, the inherent cast when multiplying entry_length by max_vnics
> in the call to rte_memzone_reserve could promote max_vnics to a signed
> value, causing hilarity to ensue...
>
> Coverity issue: 127557
> Fixes: 9738793f28ec ("net/bnxt: add VNIC functions and structs")
>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
>
​Acked
-by: Ajit Khaparde <ajit.khaparde@broadcom.com>

---
> v2: fix-up changelog entries based-on comments from Ferruh Yigit
>
>  drivers/net/bnxt/bnxt_vnic.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c
> index c04c4c740645..1b5f54c4d1ae 100644
> --- a/drivers/net/bnxt/bnxt_vnic.c
> +++ b/drivers/net/bnxt/bnxt_vnic.c
> @@ -175,7 +175,7 @@ int bnxt_alloc_vnic_attributes(struct bnxt *bp)
>         struct rte_pci_device *pdev = bp->pdev;
>         const struct rte_memzone *mz;
>         char mz_name[RTE_MEMZONE_NAMESIZE];
> -       int entry_length = RTE_CACHE_LINE_ROUNDUP(
> +       uint16_t entry_length = RTE_CACHE_LINE_ROUNDUP(
>                                 HW_HASH_INDEX_SIZE *
> sizeof(*vnic->rss_table) +
>                                 HW_HASH_KEY_SIZE);
>         uint16_t max_vnics;
> --
> 2.7.4
>
>
  

Patch

diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c
index c04c4c740645..1b5f54c4d1ae 100644
--- a/drivers/net/bnxt/bnxt_vnic.c
+++ b/drivers/net/bnxt/bnxt_vnic.c
@@ -175,7 +175,7 @@  int bnxt_alloc_vnic_attributes(struct bnxt *bp)
 	struct rte_pci_device *pdev = bp->pdev;
 	const struct rte_memzone *mz;
 	char mz_name[RTE_MEMZONE_NAMESIZE];
-	int entry_length = RTE_CACHE_LINE_ROUNDUP(
+	uint16_t entry_length = RTE_CACHE_LINE_ROUNDUP(
 				HW_HASH_INDEX_SIZE * sizeof(*vnic->rss_table) +
 				HW_HASH_KEY_SIZE);
 	uint16_t max_vnics;