summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/mtdswap.c
diff options
context:
space:
mode:
authorMaxin B. John <john.maxin@nokia.com>2011-05-20 16:44:10 +0200
committerDavid Woodhouse <David.Woodhouse@intel.com>2011-05-25 03:11:44 +0200
commit8d8f26e19cae48541b824f164021e1ff05067f8c (patch)
tree622456f9c0792a75ef8d81e2f0d61770fb03e478 /drivers/mtd/mtdswap.c
parentmtd: remove duplicate assignment of chip->state (diff)
downloadlinux-8d8f26e19cae48541b824f164021e1ff05067f8c.tar.xz
linux-8d8f26e19cae48541b824f164021e1ff05067f8c.zip
mtd: mtdswap: fix possible null dereference
This patch fixes the possible null dereference of the variable "oinfo" Thanks to Coverity for spotting this. Signed-off-by: Maxin B. John <john.maxin@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/mtdswap.c')
-rw-r--r--drivers/mtd/mtdswap.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mtd/mtdswap.c b/drivers/mtd/mtdswap.c
index fed215c4cfa1..fd7885327611 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);