diff options
author | Maxin B. John <john.maxin@nokia.com> | 2011-05-20 16:44:10 +0200 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2011-05-25 03:11:44 +0200 |
commit | 8d8f26e19cae48541b824f164021e1ff05067f8c (patch) | |
tree | 622456f9c0792a75ef8d81e2f0d61770fb03e478 /drivers/mtd/mtdswap.c | |
parent | mtd: remove duplicate assignment of chip->state (diff) | |
download | linux-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.c | 8 |
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); |