Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756218AbZLWPJm (ORCPT ); Wed, 23 Dec 2009 10:09:42 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756197AbZLWPJj (ORCPT ); Wed, 23 Dec 2009 10:09:39 -0500 Received: from mga09.intel.com ([134.134.136.24]:60720 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756191AbZLWPJg convert rfc822-to-8bit (ORCPT ); Wed, 23 Dec 2009 10:09:36 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.47,442,1257148800"; d="scan'208";a="478645079" From: "Sosnowski, Maciej" To: Julia Lawall CC: "Williams, Dan J" , "linux-kernel@vger.kernel.org" , "kernel-janitors@vger.kernel.org" Date: Wed, 23 Dec 2009 15:08:32 +0000 Subject: RE: [PATCH 1/6] drivers/dma: Correct use after free Thread-Topic: [PATCH 1/6] drivers/dma: Correct use after free Thread-Index: AcqDRcVjlceMVTLjT8K9R1dVrY6tegAm/p+A Message-ID: <129600E5E5FB004392DDC3FB599660D7CB370DD8@irsmsx504.ger.corp.intel.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1452 Lines: 50 Julia Lawall wrote: > From: Julia Lawall > > Move the kfree after the iounmap that refers to the same structure. > > A simplified version of the semantic match that finds this problem is as > follows: (http://coccinelle.lip6.fr/) > > // > @@ > expression x,e; > identifier f; > iterator I; > statement S; > @@ > > *kfree(x); > ... when != &x > when != x = e > when != I(x,...) S > *x->f > // > > Signed-off-by: Julia Lawall > > --- > drivers/dma/coh901318.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c > index 4a99cd9..b5f2ee0 100644 > --- a/drivers/dma/coh901318.c > +++ b/drivers/dma/coh901318.c > @@ -1294,8 +1294,8 @@ static int __exit coh901318_remove(struct platform_device *pdev) > dma_async_device_unregister(&base->dma_slave); > coh901318_pool_destroy(&base->pool); > free_irq(platform_get_irq(pdev, 0), base); > - kfree(base); > iounmap(base->virtbase); > + kfree(base); > release_mem_region(pdev->resource->start, > resource_size(pdev->resource)); > return 0; Acked-by: Maciej Sosnowski -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/