net/ipn3ke: check input arguement before other operation

Message ID 1558509691-429834-1-git-send-email-andy.pei@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series net/ipn3ke: check input arguement before other operation |

Checks

Context Check Description
ci/checkpatch warning coding style issues
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, 7:21 a.m. UTC
  check input arguement rte_eth_dev *ethdev, ensuring ethdev
is not NULl before operation on ethdev.

Coverity issue: 337922
Fixes: 70d6b7f550f4 ("net/ipn3ke: add representor")
Cc: rosen.xu@intel.com
Cc: stable@dpdk.org

Signed-off-by: Andy Pei <andy.pei@intel.com>
---
 drivers/net/ipn3ke/ipn3ke_representor.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
  

Comments

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

> -----Original Message-----
> From: Pei, Andy
> Sent: Wednesday, May 22, 2019 15:22
> To: dev@dpdk.org
> Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>;
> stable@dpdk.org
> Subject: [PATCH] net/ipn3ke: check input arguement before other operation
> 
> check input arguement rte_eth_dev *ethdev, ensuring ethdev is not NULl
> before operation on ethdev.
> 
> Coverity issue: 337922
> Fixes: 70d6b7f550f4 ("net/ipn3ke: add representor")
> Cc: rosen.xu@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  drivers/net/ipn3ke/ipn3ke_representor.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c
> b/drivers/net/ipn3ke/ipn3ke_representor.c
> index cf3b214..32d4fc8 100644
> --- a/drivers/net/ipn3ke/ipn3ke_representor.c
> +++ b/drivers/net/ipn3ke/ipn3ke_representor.c
> @@ -735,13 +735,16 @@
>  	enum rte_filter_type filter_type, enum rte_filter_op filter_op,
>  	void *arg)
>  {
> -	struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev);
> -	struct ipn3ke_rpst *rpst = IPN3KE_DEV_PRIVATE_TO_RPST(ethdev);
>  	int ret = 0;
> +	struct ipn3ke_hw *hw = NULL;
> +	struct ipn3ke_rpst *rpst = NULL;

No need to initialize point variable.

>  	if (ethdev == NULL)
>  		return -EINVAL;
> 
> +	hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev);
> +	rpst = IPN3KE_DEV_PRIVATE_TO_RPST(ethdev);
> +
>  	if (hw->acc_flow)
>  		switch (filter_type) {
>  		case RTE_ETH_FILTER_GENERIC:
> --
> 1.8.3.1
  
Pei, Andy May 23, 2019, 3:05 a.m. UTC | #2
Hi, Rosen,

It will be fixed in v2.

-----Original Message-----
From: Xu, Rosen 
Sent: Thursday, May 23, 2019 10:31 AM
To: Pei, Andy <andy.pei@intel.com>; dev@dpdk.org
Cc: stable@dpdk.org
Subject: RE: [PATCH] net/ipn3ke: check input arguement before other operation

Hi,

> -----Original Message-----
> From: Pei, Andy
> Sent: Wednesday, May 22, 2019 15:22
> To: dev@dpdk.org
> Cc: Pei, Andy <andy.pei@intel.com>; Xu, Rosen <rosen.xu@intel.com>; 
> stable@dpdk.org
> Subject: [PATCH] net/ipn3ke: check input arguement before other 
> operation
> 
> check input arguement rte_eth_dev *ethdev, ensuring ethdev is not NULl 
> before operation on ethdev.
> 
> Coverity issue: 337922
> Fixes: 70d6b7f550f4 ("net/ipn3ke: add representor")
> Cc: rosen.xu@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andy Pei <andy.pei@intel.com>
> ---
>  drivers/net/ipn3ke/ipn3ke_representor.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c
> b/drivers/net/ipn3ke/ipn3ke_representor.c
> index cf3b214..32d4fc8 100644
> --- a/drivers/net/ipn3ke/ipn3ke_representor.c
> +++ b/drivers/net/ipn3ke/ipn3ke_representor.c
> @@ -735,13 +735,16 @@
>  	enum rte_filter_type filter_type, enum rte_filter_op filter_op,
>  	void *arg)
>  {
> -	struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev);
> -	struct ipn3ke_rpst *rpst = IPN3KE_DEV_PRIVATE_TO_RPST(ethdev);
>  	int ret = 0;
> +	struct ipn3ke_hw *hw = NULL;
> +	struct ipn3ke_rpst *rpst = NULL;

No need to initialize point variable.

>  	if (ethdev == NULL)
>  		return -EINVAL;
> 
> +	hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev);
> +	rpst = IPN3KE_DEV_PRIVATE_TO_RPST(ethdev);
> +
>  	if (hw->acc_flow)
>  		switch (filter_type) {
>  		case RTE_ETH_FILTER_GENERIC:
> --
> 1.8.3.1
  

Patch

diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c b/drivers/net/ipn3ke/ipn3ke_representor.c
index cf3b214..32d4fc8 100644
--- a/drivers/net/ipn3ke/ipn3ke_representor.c
+++ b/drivers/net/ipn3ke/ipn3ke_representor.c
@@ -735,13 +735,16 @@ 
 	enum rte_filter_type filter_type, enum rte_filter_op filter_op,
 	void *arg)
 {
-	struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev);
-	struct ipn3ke_rpst *rpst = IPN3KE_DEV_PRIVATE_TO_RPST(ethdev);
 	int ret = 0;
+	struct ipn3ke_hw *hw = NULL;
+	struct ipn3ke_rpst *rpst = NULL;
 
 	if (ethdev == NULL)
 		return -EINVAL;
 
+	hw = IPN3KE_DEV_PRIVATE_TO_HW(ethdev);
+	rpst = IPN3KE_DEV_PRIVATE_TO_RPST(ethdev);
+
 	if (hw->acc_flow)
 		switch (filter_type) {
 		case RTE_ETH_FILTER_GENERIC: