raw/ifpga: fix unintentional integer overflow

Message ID 1558507369-350703-1-git-send-email-andy.pei@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series raw/ifpga: fix unintentional integer overflow |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Pei, Andy May 22, 2019, 6:42 a.m. UTC
  cast unsigned int ports_per_retimer, unsigned int nums_retimer,
unsigned int nums_fvl and unsigned int ports_per_fvl to uint64_t
before multiply operation, to avoid Unintentional integer overflow.

Coverity issue: 337924, 337926
Fixes: d1cd4eb2d48e ("raw/ifpga: support ipn3ke")
Cc: rosen.xu@intel.com
Cc: stable@dpdk.org

Signed-off-by: Andy Pei <andy.pei@intel.com>
---
 drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Xu, Rosen May 23, 2019, 2:11 a.m. UTC | #1
Hi Andy,

Why you sent this patch two times?

> -----Original Message-----
> From: Pei, Andy
> Sent: Wednesday, May 22, 2019 14:43
> To: dev@dpdk.org
> Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>;
> stable@dpdk.org
> Subject: [PATCH] raw/ifpga: fix unintentional integer overflow
> 
> cast unsigned int ports_per_retimer, unsigned int nums_retimer, unsigned
> int nums_fvl and unsigned int ports_per_fvl to uint64_t before multiply
> operation, to avoid Unintentional integer overflow.
> 
> Coverity issue: 337924, 337926
> Fixes: d1cd4eb2d48e ("raw/ifpga: support ipn3ke")
> Cc: rosen.xu@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> index 41be1a2..9c68666 100644
> --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> @@ -494,8 +494,8 @@
>  	if (!strcmp(attr_name, "LineSideLinkPortNum")) {
>  		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
>  			return -1;
> -		uint64_t tmp = opae_rtm_info.ports_per_retimer *
> -			opae_rtm_info.nums_retimer;
> +		uint64_t tmp = (uint64_t)opae_rtm_info.ports_per_retimer *
> +
> 	(uint64_t)opae_rtm_info.nums_retimer;
>  		*attr_value = tmp;
>  		return 0;
>  	}
> @@ -547,8 +547,8 @@
>  	if (!strcmp(attr_name, "NICSideLinkPortNum")) {
>  		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
>  			return -1;
> -		uint64_t tmp = opae_rtm_info.nums_fvl *
> -					opae_rtm_info.ports_per_fvl;
> +		uint64_t tmp = (uint64_t)opae_rtm_info.nums_fvl *
> +
> 	(uint64_t)opae_rtm_info.ports_per_fvl;
>  		*attr_value = tmp;
>  		return 0;
>  	}
> --
> 1.8.3.1
  
Pei, Andy May 23, 2019, 2:52 a.m. UTC | #2
Hi Rosen,

I use git send-email for internal check, I seems I should not cc you and stable@dpdk.

-----Original Message-----
From: Xu, Rosen 
Sent: Thursday, May 23, 2019 10:11 AM
To: Pei, Andy <andy.pei@intel.com>; dev@dpdk.org
Cc: stable@dpdk.org
Subject: RE: [PATCH] raw/ifpga: fix unintentional integer overflow

Hi Andy,

Why you sent this patch two times?

> -----Original Message-----
> From: Pei, Andy
> Sent: Wednesday, May 22, 2019 14:43
> To: dev@dpdk.org
> Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>; 
> stable@dpdk.org
> Subject: [PATCH] raw/ifpga: fix unintentional integer overflow
> 
> cast unsigned int ports_per_retimer, unsigned int nums_retimer, 
> unsigned int nums_fvl and unsigned int ports_per_fvl to uint64_t 
> before multiply operation, to avoid Unintentional integer overflow.
> 
> Coverity issue: 337924, 337926
> Fixes: d1cd4eb2d48e ("raw/ifpga: support ipn3ke")
> Cc: rosen.xu@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> index 41be1a2..9c68666 100644
> --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> @@ -494,8 +494,8 @@
>  	if (!strcmp(attr_name, "LineSideLinkPortNum")) {
>  		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
>  			return -1;
> -		uint64_t tmp = opae_rtm_info.ports_per_retimer *
> -			opae_rtm_info.nums_retimer;
> +		uint64_t tmp = (uint64_t)opae_rtm_info.ports_per_retimer *
> +
> 	(uint64_t)opae_rtm_info.nums_retimer;
>  		*attr_value = tmp;
>  		return 0;
>  	}
> @@ -547,8 +547,8 @@
>  	if (!strcmp(attr_name, "NICSideLinkPortNum")) {
>  		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
>  			return -1;
> -		uint64_t tmp = opae_rtm_info.nums_fvl *
> -					opae_rtm_info.ports_per_fvl;
> +		uint64_t tmp = (uint64_t)opae_rtm_info.nums_fvl *
> +
> 	(uint64_t)opae_rtm_info.ports_per_fvl;
>  		*attr_value = tmp;
>  		return 0;
>  	}
> --
> 1.8.3.1
  
Xu, Rosen May 23, 2019, 3 a.m. UTC | #3
Hi,

> -----Original Message-----
> From: Pei, Andy
> Sent: Wednesday, May 22, 2019 14:43
> To: dev@dpdk.org
> Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>;
> stable@dpdk.org
> Subject: [PATCH] raw/ifpga: fix unintentional integer overflow
> 
> cast unsigned int ports_per_retimer, unsigned int nums_retimer, unsigned
> int nums_fvl and unsigned int ports_per_fvl to uint64_t before multiply
> operation, to avoid Unintentional integer overflow.
> 
> Coverity issue: 337924, 337926
> Fixes: d1cd4eb2d48e ("raw/ifpga: support ipn3ke")
> Cc: rosen.xu@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> index 41be1a2..9c68666 100644
> --- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> +++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
> @@ -494,8 +494,8 @@
>  	if (!strcmp(attr_name, "LineSideLinkPortNum")) {
>  		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
>  			return -1;
> -		uint64_t tmp = opae_rtm_info.ports_per_retimer *
> -			opae_rtm_info.nums_retimer;
> +		uint64_t tmp = (uint64_t)opae_rtm_info.ports_per_retimer *
> +
> 	(uint64_t)opae_rtm_info.nums_retimer;
>  		*attr_value = tmp;
>  		return 0;
>  	}
> @@ -547,8 +547,8 @@
>  	if (!strcmp(attr_name, "NICSideLinkPortNum")) {
>  		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
>  			return -1;
> -		uint64_t tmp = opae_rtm_info.nums_fvl *
> -					opae_rtm_info.ports_per_fvl;
> +		uint64_t tmp = (uint64_t)opae_rtm_info.nums_fvl *
> +
> 	(uint64_t)opae_rtm_info.ports_per_fvl;
>  		*attr_value = tmp;
>  		return 0;
>  	}
> --
> 1.8.3.1

Acked-by: Rosen Xu <rosen.xu@intel.com>
  
Pei, Andy July 4, 2019, 7:16 a.m. UTC | #4
+Qi

-----Original Message-----
From: Pei, Andy 
Sent: Wednesday, May 22, 2019 2:43 PM
To: dev@dpdk.org
Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>; stable@dpdk.org
Subject: [PATCH] raw/ifpga: fix unintentional integer overflow

cast unsigned int ports_per_retimer, unsigned int nums_retimer, unsigned int nums_fvl and unsigned int ports_per_fvl to uint64_t before multiply operation, to avoid Unintentional integer overflow.

Coverity issue: 337924, 337926
Fixes: d1cd4eb2d48e ("raw/ifpga: support ipn3ke")
Cc: rosen.xu@intel.com
Cc: stable@dpdk.org

Signed-off-by: Andy Pei <andy.pei@intel.com>
---
 drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
index 41be1a2..9c68666 100644
--- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
+++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
@@ -494,8 +494,8 @@
 	if (!strcmp(attr_name, "LineSideLinkPortNum")) {
 		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
 			return -1;
-		uint64_t tmp = opae_rtm_info.ports_per_retimer *
-			opae_rtm_info.nums_retimer;
+		uint64_t tmp = (uint64_t)opae_rtm_info.ports_per_retimer *
+					(uint64_t)opae_rtm_info.nums_retimer;
 		*attr_value = tmp;
 		return 0;
 	}
@@ -547,8 +547,8 @@
 	if (!strcmp(attr_name, "NICSideLinkPortNum")) {
 		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
 			return -1;
-		uint64_t tmp = opae_rtm_info.nums_fvl *
-					opae_rtm_info.ports_per_fvl;
+		uint64_t tmp = (uint64_t)opae_rtm_info.nums_fvl *
+					(uint64_t)opae_rtm_info.ports_per_fvl;
 		*attr_value = tmp;
 		return 0;
 	}
--
1.8.3.1
  

Patch

diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
index 41be1a2..9c68666 100644
--- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
+++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
@@ -494,8 +494,8 @@ 
 	if (!strcmp(attr_name, "LineSideLinkPortNum")) {
 		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
 			return -1;
-		uint64_t tmp = opae_rtm_info.ports_per_retimer *
-			opae_rtm_info.nums_retimer;
+		uint64_t tmp = (uint64_t)opae_rtm_info.ports_per_retimer *
+					(uint64_t)opae_rtm_info.nums_retimer;
 		*attr_value = tmp;
 		return 0;
 	}
@@ -547,8 +547,8 @@ 
 	if (!strcmp(attr_name, "NICSideLinkPortNum")) {
 		if (opae_manager_get_retimer_info(mgr, &opae_rtm_info))
 			return -1;
-		uint64_t tmp = opae_rtm_info.nums_fvl *
-					opae_rtm_info.ports_per_fvl;
+		uint64_t tmp = (uint64_t)opae_rtm_info.nums_fvl *
+					(uint64_t)opae_rtm_info.ports_per_fvl;
 		*attr_value = tmp;
 		return 0;
 	}