diff mbox series

[2/3] mtd: rawnand: meson: fix a loop in meson_nand_bch_mode()

Message ID 20190201083009.GD8459@kadam (mailing list archive)
State Not Applicable
Headers show
Series [1/3] mtd: rawnand: meson: Fix a limit test in meson_nfc_select_chip() | expand

Commit Message

Dan Carpenter Feb. 1, 2019, 8:30 a.m. UTC
There is a sizeof() vs ARRAY_SIZE() bug here.  We want the number of
elements in the array, not the number of bytes.  It means we potentially
read beyond the end of the array.

Fixes: 2d570b34b41a ("mtd: rawnand: meson: add support for Amlogic NAND flash controller")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 drivers/mtd/nand/raw/meson_nand.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Liang Yang Feb. 2, 2019, 3:01 a.m. UTC | #1
On 2019/2/1 16:30, Dan Carpenter wrote:
> There is a sizeof() vs ARRAY_SIZE() bug here.  We want the number of
> elements in the array, not the number of bytes.  It means we potentially
> read beyond the end of the array.
> 
> Fixes: 2d570b34b41a ("mtd: rawnand: meson: add support for Amlogic NAND flash controller")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
>   drivers/mtd/nand/raw/meson_nand.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c
> index 94c90be7e1e0..0d93d0b9c1af 100644
> --- a/drivers/mtd/nand/raw/meson_nand.c
> +++ b/drivers/mtd/nand/raw/meson_nand.c
> @@ -1143,7 +1143,7 @@ static int meson_nand_bch_mode(struct nand_chip *nand)
>   	if (nand->ecc.strength > 60 || nand->ecc.strength < 8)
>   		return -EINVAL;
>   
> -	for (i = 0; i < sizeof(meson_ecc); i++) {
> +	for (i = 0; i < ARRAY_SIZE(meson_ecc); i++) {

ok.

Acked-by: Liang Yang <liang.yang@amlogic.com>

>   		if (meson_ecc[i].strength == nand->ecc.strength) {
>   			meson_chip->bch_mode = meson_ecc[i].bch;
>   			return 0;
>
diff mbox series

Patch

diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c
index 94c90be7e1e0..0d93d0b9c1af 100644
--- a/drivers/mtd/nand/raw/meson_nand.c
+++ b/drivers/mtd/nand/raw/meson_nand.c
@@ -1143,7 +1143,7 @@  static int meson_nand_bch_mode(struct nand_chip *nand)
 	if (nand->ecc.strength > 60 || nand->ecc.strength < 8)
 		return -EINVAL;
 
-	for (i = 0; i < sizeof(meson_ecc); i++) {
+	for (i = 0; i < ARRAY_SIZE(meson_ecc); i++) {
 		if (meson_ecc[i].strength == nand->ecc.strength) {
 			meson_chip->bch_mode = meson_ecc[i].bch;
 			return 0;