[PATCH] libmtd: avoid divide by zero

Chris Packham chris.packham at alliedtelesis.co.nz
Thu Nov 26 17:41:08 EST 2020


Some mtd-ram devices report 0 for the erase block size. Avoid a divide
by zero when calculating the erase block count for such devices.

Signed-off-by: Chris Packham <chris.packham at alliedtelesis.co.nz>
---
 lib/libmtd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/libmtd.c b/lib/libmtd.c
index 9d8d0e8..8aa1cb1 100644
--- a/lib/libmtd.c
+++ b/lib/libmtd.c
@@ -791,7 +791,8 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd)
 		return -1;
 	mtd->writable = !!(ret & MTD_WRITEABLE);
 
-	mtd->eb_cnt = mtd->size / mtd->eb_size;
+	if (mtd->eb_size)
+		mtd->eb_cnt = mtd->size / mtd->eb_size;
 	mtd->type = type_str2int(mtd->type_str);
 	mtd->bb_allowed = !!(mtd->type == MTD_NANDFLASH ||
 				mtd->type == MTD_MLCNANDFLASH);
-- 
2.29.2




More information about the linux-mtd mailing list