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: stable@vger.kernel.org Fixes:49bddc73d15c2("libnvdimm/of_pmem: Provide a unique name for bus provider") Signed-off-by: Vaibhav Jain vaibhav@linux.ibm.com --- 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;
Vaibhav Jain vaibhav@linux.ibm.com writes:
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().
Reviewed-by: Aneesh Kumar K.V aneesh.kumar@linux.ibm.com
Cc: stable@vger.kernel.org Fixes:49bddc73d15c2("libnvdimm/of_pmem: Provide a unique name for bus provider") Signed-off-by: Vaibhav Jain vaibhav@linux.ibm.com
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); return -ENODEV; }kfree(priv->bus_desc.provider_name);
@@ -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 -- linux-nvdimm@lists.01.org To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
Vaibhav Jain vaibhav@linux.ibm.com writes:
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: stable@vger.kernel.org Fixes:49bddc73d15c2("libnvdimm/of_pmem: Provide a unique name for bus provider") Signed-off-by: Vaibhav Jain vaibhav@linux.ibm.com
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); return -ENODEV; }kfree(priv->bus_desc.provider_name);
@@ -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;
Reviewed-by: Jeff Moyer jmoyer@redhat.com
linux-stable-mirror@lists.linaro.org