2020-08-24 05:51:49

by Dinghao Liu

[permalink] [raw]
Subject: [PATCH] net: hns: Fix memleak in hns_nic_dev_probe

hns_nic_dev_probe allocates ndev, but not free it on
two error handling paths, which may lead to memleak.

Fixes: 63434888aaf1b ("net: hns: net: hns: enet adds support of acpi")
Signed-off-by: Dinghao Liu <[email protected]>
---
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index 23f278e46975..22522f8a5299 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -2282,8 +2282,10 @@ static int hns_nic_dev_probe(struct platform_device *pdev)
priv->enet_ver = AE_VERSION_1;
else if (acpi_dev_found(hns_enet_acpi_match[1].id))
priv->enet_ver = AE_VERSION_2;
- else
- return -ENXIO;
+ else {
+ ret = -ENXIO;
+ goto out_read_prop_fail;
+ }

/* try to find port-idx-in-ae first */
ret = acpi_node_get_property_reference(dev->fwnode,
@@ -2299,7 +2301,8 @@ static int hns_nic_dev_probe(struct platform_device *pdev)
priv->fwnode = args.fwnode;
} else {
dev_err(dev, "cannot read cfg data from OF or acpi\n");
- return -ENXIO;
+ ret = -ENXIO;
+ goto out_read_prop_fail;
}

ret = device_property_read_u32(dev, "port-idx-in-ae", &port_id);
--
2.17.1


2020-08-24 12:57:32

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: hns: Fix memleak in hns_nic_dev_probe

From: Dinghao Liu <[email protected]>
Date: Mon, 24 Aug 2020 13:44:42 +0800

> hns_nic_dev_probe allocates ndev, but not free it on
> two error handling paths, which may lead to memleak.
>
> Fixes: 63434888aaf1b ("net: hns: net: hns: enet adds support of acpi")
> Signed-off-by: Dinghao Liu <[email protected]>

Applied and queued up for -stable, thanks.