[PATCH 1/2] media: rockchip: rkcif: fix off by one bugs
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Feb 19 00:59:31 PST 2026
On Mon, Feb 16, 2026 at 02:49:56PM +0100, Michael Riesch via B4 Relay wrote:
> From: Dan Carpenter <dan.carpenter at linaro.org>
>
> Change these comparisons from > vs >= to avoid accessing one element
> beyond the end of the arrays.
>
> Fixes: 1f2353f5a1af ("media: rockchip: rkcif: add support for rk3568 vicap mipi capture")
> Cc: stable at kernel.org
> Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>
> Reviewed-by: Michael Riesch <michael.riesch at collabora.com>
> Signed-off-by: Michael Riesch <michael.riesch at collabora.com>
> ---
> drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c
> index 1b81bcc067ef..a933df682acc 100644
> --- a/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c
> +++ b/drivers/media/platform/rockchip/rkcif/rkcif-capture-mipi.c
> @@ -489,8 +489,8 @@ static inline unsigned int rkcif_mipi_get_reg(struct rkcif_interface *interface,
>
> block = interface->index - RKCIF_MIPI_BASE;
>
> - if (WARN_ON_ONCE(block > RKCIF_MIPI_MAX - RKCIF_MIPI_BASE) ||
> - WARN_ON_ONCE(index > RKCIF_MIPI_REGISTER_MAX))
> + if (WARN_ON_ONCE(block >= RKCIF_MIPI_MAX - RKCIF_MIPI_BASE) ||
> + WARN_ON_ONCE(index >= RKCIF_MIPI_REGISTER_MAX))
While at it, I'd write
if (WARN_ON_ONCE(block >= ARRAY_SIZE(rkcif->match_data->mipi->blocks)) ||
WARN_ON_ONCE(index >= ARRAY_SIZE(rkcif->match_data->mipi->regs)))
Same below.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> return RKCIF_REGISTER_NOTSUPPORTED;
>
> offset = rkcif->match_data->mipi->blocks[block].offset;
> @@ -510,9 +510,9 @@ static inline unsigned int rkcif_mipi_id_get_reg(struct rkcif_stream *stream,
> block = stream->interface->index - RKCIF_MIPI_BASE;
> id = stream->id;
>
> - if (WARN_ON_ONCE(block > RKCIF_MIPI_MAX - RKCIF_MIPI_BASE) ||
> - WARN_ON_ONCE(id > RKCIF_ID_MAX) ||
> - WARN_ON_ONCE(index > RKCIF_MIPI_ID_REGISTER_MAX))
> + if (WARN_ON_ONCE(block >= RKCIF_MIPI_MAX - RKCIF_MIPI_BASE) ||
> + WARN_ON_ONCE(id >= RKCIF_ID_MAX) ||
> + WARN_ON_ONCE(index >= RKCIF_MIPI_ID_REGISTER_MAX))
> return RKCIF_REGISTER_NOTSUPPORTED;
>
> offset = rkcif->match_data->mipi->blocks[block].offset;
--
Regards,
Laurent Pinchart
More information about the linux-arm-kernel
mailing list