[v2] net/ixgbe: fix mac resourece leak

Message ID 20210831142131.9295-1-chenqiming_huawei@163.com (mailing list archive)
State Superseded, archived
Headers
Series [v2] net/ixgbe: fix mac resourece leak |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

Qiming Chen Aug. 31, 2021, 2:21 p.m. UTC
  In the eth_ixgbevf_dev_init and eth_ixgbe_dev_init functions, memory is
allocated for the MAC address, and the address is stored in the
eth_dev->data->mac_addrs member variable. If the subsequent function is
abnormal, you need to use the rte_free function to release the MAC
address memory.

Fixes: abf7275bbaa2 ("ixgbe: move to drivers/net/")
Cc: stable@dpdk.org

Signed-off-by: Qiming Chen <chenqiming_huawei@163.com>
---
v2:
  Clear coding style warning.
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Wang, Haiyue Sept. 1, 2021, 6:25 a.m. UTC | #1
> -----Original Message-----
> From: Qiming Chen <chenqiming_huawei@163.com>
> Sent: Tuesday, August 31, 2021 22:22
> To: dev@dpdk.org
> Cc: Wang, Haiyue <haiyue.wang@intel.com>; Qiming Chen <chenqiming_huawei@163.com>; stable@dpdk.org
> Subject: [PATCH v2] net/ixgbe: fix mac resourece leak
> 
> In the eth_ixgbevf_dev_init and eth_ixgbe_dev_init functions, memory is
> allocated for the MAC address, and the address is stored in the
> eth_dev->data->mac_addrs member variable. If the subsequent function is
> abnormal, you need to use the rte_free function to release the MAC
> address memory.
> 
> Fixes: abf7275bbaa2 ("ixgbe: move to drivers/net/")

Use this tag:
Fixes: af75078fece3 ("first public release")

Also, your ixgbe series fixes can be into patch set, no need to
send them one by one.

Thanks for your effort. ;-)

> Cc: stable@dpdk.org
> 
> Signed-off-by: Qiming Chen <chenqiming_huawei@163.com>
> ---
> v2:
>   Clear coding style warning.
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 7d3a821300..6a91f104e1 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -1218,6 +1218,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
>  		PMD_INIT_LOG(ERR,
>  			     "Failed to allocate %d bytes needed to store MAC addresses",
>  			     RTE_ETHER_ADDR_LEN * IXGBE_VMDQ_NUM_UC_MAC);
> +		rte_free(eth_dev->data->mac_addrs);
> +		eth_dev->data->mac_addrs = NULL;
>  		return -ENOMEM;
>  	}
> 
> @@ -1672,6 +1674,8 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
> 
>  	default:
>  		PMD_INIT_LOG(ERR, "VF Initialization Failure: %d", diag);
> +		rte_free(eth_dev->data->mac_addrs);
> +		eth_dev->data->mac_addrs = NULL;
>  		return -EIO;
>  	}
> 
> --
> 2.30.1.windows.1
  
Qiming Chen Sept. 1, 2021, 7:26 a.m. UTC | #2
Ask a question: how to submit an issue while keeping the exchange log.


| |
Qiming Chen
|
|
chenqiming_huawei@163.com
|
签名由网易邮箱大师定制
On 9/1/2021 14:25,Wang, Haiyue<haiyue.wang@intel.com> wrote:
-----Original Message-----
From: Qiming Chen <chenqiming_huawei@163.com>
Sent: Tuesday, August 31, 2021 22:22
To: dev@dpdk.org
Cc: Wang, Haiyue <haiyue.wang@intel.com>; Qiming Chen <chenqiming_huawei@163.com>; stable@dpdk.org
Subject: [PATCH v2] net/ixgbe: fix mac resourece leak

In the eth_ixgbevf_dev_init and eth_ixgbe_dev_init functions, memory is
allocated for the MAC address, and the address is stored in the
eth_dev->data->mac_addrs member variable. If the subsequent function is
abnormal, you need to use the rte_free function to release the MAC
address memory.

Fixes: abf7275bbaa2 ("ixgbe: move to drivers/net/")

Use this tag:
Fixes: af75078fece3 ("first public release")

Also, your ixgbe series fixes can be into patch set, no need to
send them one by one.

Thanks for your effort. ;-)

Cc: stable@dpdk.org

Signed-off-by: Qiming Chen <chenqiming_huawei@163.com>
---
v2:
Clear coding style warning.
---
drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 7d3a821300..6a91f104e1 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1218,6 +1218,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
PMD_INIT_LOG(ERR,
"Failed to allocate %d bytes needed to store MAC addresses",
RTE_ETHER_ADDR_LEN * IXGBE_VMDQ_NUM_UC_MAC);
+    rte_free(eth_dev->data->mac_addrs);
+    eth_dev->data->mac_addrs = NULL;
return -ENOMEM;
}

@@ -1672,6 +1674,8 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)

default:
PMD_INIT_LOG(ERR, "VF Initialization Failure: %d", diag);
+    rte_free(eth_dev->data->mac_addrs);
+    eth_dev->data->mac_addrs = NULL;
return -EIO;
}

--
2.30.1.windows.1
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 7d3a821300..6a91f104e1 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1218,6 +1218,8 @@  eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 		PMD_INIT_LOG(ERR,
 			     "Failed to allocate %d bytes needed to store MAC addresses",
 			     RTE_ETHER_ADDR_LEN * IXGBE_VMDQ_NUM_UC_MAC);
+		rte_free(eth_dev->data->mac_addrs);
+		eth_dev->data->mac_addrs = NULL;
 		return -ENOMEM;
 	}
 
@@ -1672,6 +1674,8 @@  eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 
 	default:
 		PMD_INIT_LOG(ERR, "VF Initialization Failure: %d", diag);
+		rte_free(eth_dev->data->mac_addrs);
+		eth_dev->data->mac_addrs = NULL;
 		return -EIO;
 	}