mtd: Fix mtd_check_oob_ops()

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Mon Dec 18 08:59:03 PST 2017


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=d82c3682168431d29ba1741d0cd5ef45c68bf8e0
Commit:     d82c3682168431d29ba1741d0cd5ef45c68bf8e0
Parent:     9ec4c8e810588ddf6a4a2ebd501cf6cc18c97ad0
Author:     Miquel Raynal <miquel.raynal at free-electrons.com>
AuthorDate: Mon Dec 18 08:26:28 2017 +0100
Committer:  Richard Weinberger <richard at nod.at>
CommitDate: Mon Dec 18 09:16:35 2017 +0100

    mtd: Fix mtd_check_oob_ops()
    
    The mtd_check_oob_ops() helper verifies if the operation defined by the
    user is correct.
    
    Fix the check that verifies if the entire requested area exists. This
    check is too restrictive and will fail anytime the last data byte of the
    very last page is included in an operation.
    
    Fixes: 5cdd929da53d ("mtd: Add sanity checks in mtd_write/read_oob()")
    Signed-off-by: Miquel Raynal <miquel.raynal at free-electrons.com>
    Acked-by: Boris Brezillon <boris.brezillon at free-electrons.com>
    Signed-off-by: Richard Weinberger <richard at nod.at>
---
 drivers/mtd/mtdcore.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index f80e911b8843..73b605577447 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -1114,7 +1114,7 @@ static int mtd_check_oob_ops(struct mtd_info *mtd, loff_t offs,
 	if (!ops->oobbuf)
 		ops->ooblen = 0;
 
-	if (offs < 0 || offs + ops->len >= mtd->size)
+	if (offs < 0 || offs + ops->len > mtd->size)
 		return -EINVAL;
 
 	if (ops->ooblen) {



More information about the linux-mtd-cvs mailing list