[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