net/cpfl: fix memory leak

Message ID 20231017110655.582873-1-beilei.xing@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series net/cpfl: fix memory leak |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/github-robot: build success github build: passed
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-intel-Functional success Functional Testing PASS

Commit Message

Xing, Beilei Oct. 17, 2023, 11:06 a.m. UTC
  From: Beilei Xing <beilei.xing@intel.com>

Fix resource leak reported in coverity scan.

Coverity issue: 403265
Fixes: 2d823ecd671c ("net/cpfl: support device initialization")
Fixes: 989465ac51ea ("net/cpfl: support probe again")
Cc: stable@dpdk.org

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
---
 drivers/net/cpfl/cpfl_ethdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Comments

Qi Zhang Oct. 18, 2023, 2:05 a.m. UTC | #1
> -----Original Message-----
> From: beilei.xing@intel.com <beilei.xing@intel.com>
> Sent: Tuesday, October 17, 2023 7:07 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/cpfl: fix memory leak
> 
> From: Beilei Xing <beilei.xing@intel.com>
> 
> Fix resource leak reported in coverity scan.
> 
> Coverity issue: 403265
> Fixes: 2d823ecd671c ("net/cpfl: support device initialization")
> Fixes: 989465ac51ea ("net/cpfl: support probe again")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> ---
>  drivers/net/cpfl/cpfl_ethdev.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
> index 890a027a1d..0093deab5a 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.c
> +++ b/drivers/net/cpfl/cpfl_ethdev.c
> @@ -1626,7 +1626,8 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev,
> struct cpfl_adapter_ext *adap
> 
>  	if (rte_kvargs_count(kvlist, CPFL_VPORT) > 1) {
>  		PMD_INIT_LOG(ERR, "devarg vport is duplicated.");
> -		return -EINVAL;
> +		ret = -EINVAL;
> +		goto fail;
>  	}
> 
>  	ret = rte_kvargs_process(kvlist, CPFL_REPRESENTOR, &parse_repr,
> cpfl_args); @@ -1635,7 +1636,7 @@ cpfl_parse_devargs(struct
> rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap
>  		goto fail;
> 
>  	if (!first)
> -		return 0;
> +		goto fail;

goto fail in a success case cause confusion, maybe we can rename "fail" as "finish", or adding a another label right before "fail"?
> 
>  	ret = rte_kvargs_process(kvlist, CPFL_VPORT, &parse_vport,
>  				 cpfl_args);
> --
> 2.34.1
  

Patch

diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
index 890a027a1d..0093deab5a 100644
--- a/drivers/net/cpfl/cpfl_ethdev.c
+++ b/drivers/net/cpfl/cpfl_ethdev.c
@@ -1626,7 +1626,8 @@  cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap
 
 	if (rte_kvargs_count(kvlist, CPFL_VPORT) > 1) {
 		PMD_INIT_LOG(ERR, "devarg vport is duplicated.");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto fail;
 	}
 
 	ret = rte_kvargs_process(kvlist, CPFL_REPRESENTOR, &parse_repr, cpfl_args);
@@ -1635,7 +1636,7 @@  cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap
 		goto fail;
 
 	if (!first)
-		return 0;
+		goto fail;
 
 	ret = rte_kvargs_process(kvlist, CPFL_VPORT, &parse_vport,
 				 cpfl_args);