[PATCH v2] mtd: core: always verify OOB offset in mtd_check_oob_ops()
Miquel Raynal
miquel.raynal at bootlin.com
Thu Sep 11 08:33:11 PDT 2025
On 11/09/2025 at 16:05:31 +02, Miquel Raynal <miquel.raynal at bootlin.com> wrote:
>>> Sorry for the inconvenience.
>>>
>>>> Gabor, can you check what happens with mtdblock?
>>
>> My guess from a quick look at the code is that NOR devices have
>> mtd->oobsize == 0 and mtd_read() sets ops->ooboffs and ops->ooblen to 0.
>> So now that this check is not guarded by if (ops->ooblen), it gets
>> triggered for NOR devices on the mtd_read() path and essentially turns
>> into an if (0 >= 0), returning -EINVAL.
>>
>> Maybe a better check is if ((ops->ooboffs + ops->ooblen) >
>> mtd_oobavail())?
>
> Interesting, might make sense to do it this way.
>
> Thanks Pratyush for the suggestion, it is worth the try.
I actually have another patch series to remove and I don't have more
time to dedicate to these issues at the moment, so I will force push and
drop all the problematic patches. More testing is needed.
Thanks,
Miquèl
More information about the linux-mtd
mailing list