Chen Ni wrote: > Check the return value of kstrdup() and add kfree() for kstrdup() to > avoid memory leak. > > Fixes: 49bddc73d15c ("libnvdimm/of_pmem: Provide a unique name for bus > provider") > Signed-off-by: Chen Ni <nic...@iscas.ac.cn> > --- > Changelog: > > v1 -> v2: > > 1.Add a fixes tag. > 2.Update commit message. > --- > drivers/nvdimm/of_pmem.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/nvdimm/of_pmem.c b/drivers/nvdimm/of_pmem.c > index 10dbdcdfb9ce..fe6edb7e6631 100644 > --- a/drivers/nvdimm/of_pmem.c > +++ b/drivers/nvdimm/of_pmem.c > @@ -31,11 +31,17 @@ static int of_pmem_region_probe(struct platform_device > *pdev) > return -ENOMEM; > > priv->bus_desc.provider_name = kstrdup(pdev->name, GFP_KERNEL);
Could this be done with a devm_kstrdup()? > + if (!priv->bus_desc.provider_name) { > + kfree(priv); > + return -ENOMEM; > + } > + > priv->bus_desc.module = THIS_MODULE; > priv->bus_desc.of_node = np; > > priv->bus = bus = nvdimm_bus_register(&pdev->dev, &priv->bus_desc); > if (!bus) { > + kfree(priv->bus_desc.provider_name); If not using devm_kstrdup() don't you need a kfree in of_pmem_region_remove? Ira > kfree(priv); > return -ENODEV; > } > -- > 2.25.1 >