[PATCH] mtd: Fix mtd_check_oob_ops()
Boris Brezillon
boris.brezillon at free-electrons.com
Mon Dec 18 00:14:13 PST 2017
Hi Miquel,
On Mon, 18 Dec 2017 08:26:28 +0100
Miquel Raynal <miquel.raynal at free-electrons.com> wrote:
> 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>
and thanks for fixing my mess.
Richard, feel free to queue it for the next -rc.
Boris
> ---
> 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
mailing list