summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorruanjinjie <ruanjinjie@huawei.com>2022-11-09 17:28:52 +0800
committerJon Mason <jdmason@kudzu.us>2023-07-08 11:02:36 -0400
commit956578e3d397e00d6254dc7b5194d28587f98518 (patch)
treeaf614a663691d69e9fffbe47960f000aed0844cc
parent2790143f09938776a3b4f69685b380bae8fd06c7 (diff)
downloadlinux-stable-956578e3d397e00d6254dc7b5194d28587f98518.tar.gz
linux-stable-956578e3d397e00d6254dc7b5194d28587f98518.tar.bz2
linux-stable-956578e3d397e00d6254dc7b5194d28587f98518.zip
NTB: EPF: fix possible memory leak in pci_vntb_probe()
As ntb_register_device() don't handle error of device_register(), if ntb_register_device() returns error in pci_vntb_probe(), name of kobject which is allocated in dev_set_name() called in device_add() is leaked. As comment of device_add() says, it should call put_device() to drop the reference count that was set in device_initialize() when it fails, so the name can be freed in kobject_cleanup(). Signed-off-by: ruanjinjie <ruanjinjie@huawei.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
-rw-r--r--drivers/pci/endpoint/functions/pci-epf-vntb.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/endpoint/functions/pci-epf-vntb.c
index b7c7a8af99f4..77306983ac45 100644
--- a/drivers/pci/endpoint/functions/pci-epf-vntb.c
+++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c
@@ -1285,6 +1285,7 @@ static int pci_vntb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return 0;
err_register_dev:
+ put_device(&ndev->ntb.dev);
return -EINVAL;
}