[PATCH] mtd: Fix mtd_check_oob_ops()

Richard Weinberger richard at nod.at
Sun Dec 17 23:55:48 PST 2017


Am Montag, 18. Dezember 2017, 08:26:28 CET schrieb Miquel Raynal:
> 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>

Thanks for spotting and fixing this, Miquel.

> ---
>  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) {

Thanks,
//richard



More information about the linux-mtd mailing list