[v2] net/pfe: fix double free of MAC address

Message ID 1586397540-19668-1-git-send-email-wangyunjian@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [v2] net/pfe: fix double free of MAC address |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK

Commit Message

Yunjian Wang April 9, 2020, 1:59 a.m. UTC
  From: Yunjian Wang <wangyunjian@huawei.com>

The 'mac_addrs' freeing has been moved to rte_eth_dev_release_port(),
so freeing 'mac_addrs' like this in pfe_eth_exit() is unnecessary and
will cause double free.

Fixes: 67fc3ff97c39 ("net/pfe: introduce basic functions")
CC: stable@dpdk.org

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
v2:
 * remove 'rte_free(dev->data->mac_addrs);' suggested by Ferruh Yigit
 * update commit log
---
 drivers/net/pfe/pfe_ethdev.c | 1 -
 1 file changed, 1 deletion(-)
  

Comments

Ferruh Yigit April 9, 2020, 12:46 p.m. UTC | #1
On 4/9/2020 2:59 AM, wangyunjian wrote:
> From: Yunjian Wang <wangyunjian@huawei.com>
> 
> The 'mac_addrs' freeing has been moved to rte_eth_dev_release_port(),
> so freeing 'mac_addrs' like this in pfe_eth_exit() is unnecessary and
> will cause double free.
> 
> Fixes: 67fc3ff97c39 ("net/pfe: introduce basic functions")
> CC: stable@dpdk.org
> 
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>

Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/pfe/pfe_ethdev.c b/drivers/net/pfe/pfe_ethdev.c
index 940347819..383be4397 100644
--- a/drivers/net/pfe/pfe_ethdev.c
+++ b/drivers/net/pfe/pfe_ethdev.c
@@ -396,7 +396,6 @@  pfe_eth_exit(struct rte_eth_dev *dev, struct pfe *pfe)
 	/* Close the device file for link status */
 	pfe_eth_close_cdev(dev->data->dev_private);
 
-	rte_free(dev->data->mac_addrs);
 	rte_eth_dev_release_port(dev);
 	pfe->nb_devs--;
 }