Re: [PATCH v2 2/2] mtd: nand: qpic_common: prevent out of bounds access of BAM arrays
From: Miquel Raynal
Date: Mon Jun 02 2025 - 09:55:14 EST
Hello,
On 29/05/2025 at 19:25:11 +02, Gabor Juhos <j4g8y7@xxxxxxxxx> wrote:
> The common QPIC code does not do any boundary checking when it handles
> the command elements and scatter gater list arrays of a BAM transaction,
> thus it allows to access out of bounds elements in those.
>
> Although it is the responsibility of the given driver to allocate enough
> space for all possible BAM transaction variations, however there can be
> mistakes in the driver code which can lead to hidden memory corruption
> issues which are hard to debug.
>
> This kind of problem has been observed during testing the 'spi-qpic-snand'
> driver. Although the driver has been fixed with a preceding patch, but it
> still makes sense to reduce the chance of having such errors again later.
>
> In order to prevent such errors, change the qcom_alloc_bam_transaction()
> function to store the number of elements of the arrays in the
> 'bam_transaction' strucutre during allocation. Also, add sanity checks to
> the qcom_prep_bam_dma_desc_{cmd,data}() functions to avoid using out of
> bounds indices for the arrays.
>
> Tested-by: Lakshmi Sowjanya D <quic_laksd@xxxxxxxxxxx> # on SDX75
> Signed-off-by: Gabor Juhos <j4g8y7@xxxxxxxxx>
I'm fine with this patch going through spi,
Acked-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
Thanks,
Miquèl