From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from down.free-electrons.com ([37.187.137.238]:39213 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754950AbbI3I1F (ORCPT ); Wed, 30 Sep 2015 04:27:05 -0400 Date: Wed, 30 Sep 2015 10:27:02 +0200 From: Boris Brezillon To: David Woodhouse , Brian Norris , linux-mtd@lists.infradead.org Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH] mtd: mtdpart: fix add_mtd_partitions error path Message-ID: <20150930102702.2bb99265@bbrezillon> In-Reply-To: <1438251483-20888-1-git-send-email-boris.brezillon@free-electrons.com> References: <1438251483-20888-1-git-send-email-boris.brezillon@free-electrons.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On Thu, 30 Jul 2015 12:18:03 +0200 Boris Brezillon wrote: > If we fail to allocate a partition structure in the middle of the partition > creation process, the already allocated partitions are never removed, which > means they are still present in the partition list and their resources are > never freed. Ping. > > Signed-off-by: Boris Brezillon > Cc: stable@vger.kernel.org > --- > drivers/mtd/mtdpart.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c > index cafdb88..919a936 100644 > --- a/drivers/mtd/mtdpart.c > +++ b/drivers/mtd/mtdpart.c > @@ -664,8 +664,10 @@ int add_mtd_partitions(struct mtd_info *master, > > for (i = 0; i < nbparts; i++) { > slave = allocate_partition(master, parts + i, i, cur_offset); > - if (IS_ERR(slave)) > + if (IS_ERR(slave)) { > + del_mtd_partitions(master); > return PTR_ERR(slave); > + } > > mutex_lock(&mtd_partitions_mutex); > list_add(&slave->list, &mtd_partitions); -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com