Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f636ffb4 authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by David Woodhouse
Browse files

[MTD][MTDPART] Fix a division by zero bug



When detecting a partition beyond the end of the device, skip most of
the initialisation, in particular those bits causing a division by zero.

Signed-off-by: default avatarJörn Engel <joern@logfs.org>
Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 6910c136
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -416,6 +416,7 @@ static struct mtd_part *add_one_partition(struct mtd_info *master,
		slave->mtd.size = 0;
		printk(KERN_ERR"mtd: partition \"%s\" is out of reach -- disabled\n",
			part->name);
		goto out_register;
	}
	if (slave->offset + slave->mtd.size > master->size) {
		slave->mtd.size = master->size - slave->offset;
@@ -475,6 +476,7 @@ static struct mtd_part *add_one_partition(struct mtd_info *master,
		}
	}

out_register:
	if (part->mtdp) {
		/* store the object pointer (caller may or may not register it*/
		*part->mtdp = &slave->mtd;