From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.nokia.com ([147.243.1.47] helo=mgw-sa01.nokia.com) by casper.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1QNNoO-0003r5-3G for linux-mtd@lists.infradead.org; Fri, 20 May 2011 11:24:08 +0000 Message-ID: <4DD66B11.4070605@nokia.com> Date: Fri, 20 May 2011 14:22:25 +0100 From: maxin MIME-Version: 1.0 To: dedekind1@gmail.com Subject: Re: [PATCH] drivers: mtd: mtdswap: fix possible null dereference References: <4DD3B4C2.30301@nokia.com> <1305870365.2630.92.camel@localhost> <4DD65673.8080801@nokia.com> <1305886801.2630.132.camel@localhost> In-Reply-To: <1305886801.2630.132.camel@localhost> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Jarkko Lavinen , linux-mtd@lists.infradead.org, David Woodhouse List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This patch fixes the possible null dereference of the variable "oinfo" Thanks to Coverity for spotting this. Signed-off-by: Maxin B. John --- diff --git a/drivers/mtd/mtdswap.c b/drivers/mtd/mtdswap.c index fed215c..62ddb3a 100644 --- a/drivers/mtd/mtdswap.c +++ b/drivers/mtd/mtdswap.c @@ -1450,7 +1450,13 @@ static void mtdswap_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd) } oinfo = mtd->ecclayout; - if (!mtd->oobsize || !oinfo || oinfo->oobavail < MTDSWAP_OOBSIZE) { + if (!oinfo) { + printk(KERN_ERR "%s: mtd%d does not have OOB" + "\n", MTDSWAP_PREFIX, mtd->index); + return; + } + + if (!mtd->oobsize || oinfo->oobavail < MTDSWAP_OOBSIZE) { printk(KERN_ERR "%s: Not enough free bytes in OOB, " "%d available, %zu needed.\n", MTDSWAP_PREFIX, oinfo->oobavail, MTDSWAP_OOBSIZE);