[2.6 patch] drivers/mtd/nand/cafe_ecc.c: fix an off-by-one in a BUG_ON

Adrian Bunk bunk at stusta.de
Fri Feb 2 09:29:19 EST 2007


err_pos_lut[4096] of an array with 4096 elements is a bug.

Spotted by the Coverity checker.

While I was at it, I also converted it to ARRAY_SIZE().

Signed-off-by: Adrian Bunk <bunk at stusta.de>

--- linux-2.6.20-rc6-mm3/drivers/mtd/nand/cafe_ecc.c.old	2007-02-02 14:45:13.000000000 +0100
+++ linux-2.6.20-rc6-mm3/drivers/mtd/nand/cafe_ecc.c	2007-02-02 14:45:42.000000000 +0100
@@ -1045,7 +1045,7 @@
 
 static unsigned short err_pos(unsigned short din)
 {
-	BUG_ON(din > 4096);
+	BUG_ON(din >= ARRAY_SIZE(err_pos_lut));
 	return err_pos_lut[din];
 }
 static int chk_no_err_only(unsigned short *chk_syndrome_list, unsigned short *err_info)





More information about the linux-mtd mailing list