[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20160803142312.ev2wbuqpeigidtwk@c203.arch.suse.de>
Date: Wed, 3 Aug 2016 16:23:12 +0200
From: Johannes Thumshirn <jthumshirn@...e.de>
To: Dan Williams <dan.j.williams@...el.com>
Cc: Linux NVDIMM Mailing List <linux-nvdimm@...ts.01.org>,
Linux Kernel Mailinglist <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] libnvdimm: Fix memory leak in error path.
On Wed, Aug 03, 2016 at 07:12:51AM -0700, Dan Williams wrote:
> On Wed, Aug 3, 2016 at 7:01 AM, Johannes Thumshirn <jthumshirn@...e.de> wrote:
> > If either device_register() or nvdimm_bus_create_ndclt() fails we leak the
> > memory allocated for nvdimm_bus. Call kfree(nvdimm_bus) in the error path so
> > it's not leaked.
> >
> > Signed-off-by: Johannes Thumshirn <jthumshirn@...e.de>
> > ---
> > drivers/nvdimm/core.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/nvdimm/core.c b/drivers/nvdimm/core.c
> > index be89764..8578365 100644
> > --- a/drivers/nvdimm/core.c
> > +++ b/drivers/nvdimm/core.c
> > @@ -366,6 +366,7 @@ struct nvdimm_bus *__nvdimm_bus_register(struct device *parent,
> > return nvdimm_bus;
> > err:
> > put_device(&nvdimm_bus->dev);
> > + kfree(nvdimm_bus);
> > return NULL;
> > }
> > EXPORT_SYMBOL_GPL(__nvdimm_bus_register);
> > --
>
> This routine as moved to drivers/nvdimm/bus.c and I don't think this
> is valid since device_register() initialize the reference count, and
> the call to put_device() will trigger nvdimm_bus_release().
Which is correct...
Sorry for the unnecessary patch.
Johannes
--
Johannes Thumshirn Storage
jthumshirn@...e.de +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
Powered by blists - more mailing lists