String 'bus_desc.provider_name' allocated inside
of_pmem_region_probe() will leak in case call to nvdimm_bus_register()
fails or when of_pmem_region_remove() is called.

This minor patch ensures that 'bus_desc.provider_name' is freed in
error path for of_pmem_region_probe() as well as in
of_pmem_region_remove().

Cc: [email protected]
Fixes:49bddc73d15c2("libnvdimm/of_pmem: Provide a unique name for bus provider")
Signed-off-by: Vaibhav Jain <[email protected]>
---
 drivers/nvdimm/of_pmem.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/nvdimm/of_pmem.c b/drivers/nvdimm/of_pmem.c
index 8224d1431ea9..9cb76f9837ad 100644
--- a/drivers/nvdimm/of_pmem.c
+++ b/drivers/nvdimm/of_pmem.c
@@ -36,6 +36,7 @@ static int of_pmem_region_probe(struct platform_device *pdev)
 
        priv->bus = bus = nvdimm_bus_register(&pdev->dev, &priv->bus_desc);
        if (!bus) {
+               kfree(priv->bus_desc.provider_name);
                kfree(priv);
                return -ENODEV;
        }
@@ -81,6 +82,7 @@ static int of_pmem_region_remove(struct platform_device *pdev)
        struct of_pmem_private *priv = platform_get_drvdata(pdev);
 
        nvdimm_bus_unregister(priv->bus);
+       kfree(priv->bus_desc.provider_name);
        kfree(priv);
 
        return 0;
-- 
2.24.1
_______________________________________________
Linux-nvdimm mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to