[PATCH v3 1/9] media: v4l2-ctrls: validate HEVC tile counts
Benjamin Gaignard
benjamin.gaignard at collabora.com
Wed Sep 2 23:50:20 PDT 2026
Le 17/06/2026 à 04:18, Michael Bommarito a écrit :
> The stateless HEVC decoders read num_tile_columns_minus1 + 1 entries from
> column_width_minus1[] and num_tile_rows_minus1 + 1 from row_height_minus1[]
> and use them as tile-loop bounds, but std_validate_compound() does not
> bound these u8 counts. Reject a V4L2_CTRL_TYPE_HEVC_PPS with tiling
> enabled whose tile counts exceed the uAPI array capacity, mirroring the
> existing compound-control range checks.
>
> Fixes: 256fa3920874 ("media: v4l: Add definitions for HEVC stateless decoding")
> Assisted-by: Claude:claude-opus-4-8
> Signed-off-by: Michael Bommarito <michael.bommarito at gmail.com>
Reviewed-by: Benjamin Gaignard <benjamin.gaignard at collabora.com>
> ---
> drivers/media/v4l2-core/v4l2-ctrls-core.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c
> index 6b375720e395c..6d478e1a5ef22 100644
> --- a/drivers/media/v4l2-core/v4l2-ctrls-core.c
> +++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c
> @@ -1242,6 +1242,18 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx,
>
> p_hevc_pps->flags &=
> ~V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED;
> + } else {
> + /*
> + * These count the entries the stateless HEVC drivers
> + * read from column_width_minus1[] / row_height_minus1[]
> + * and use as tile-loop bounds.
> + */
> + if (p_hevc_pps->num_tile_columns_minus1 >=
> + ARRAY_SIZE(p_hevc_pps->column_width_minus1))
> + return -EINVAL;
> + if (p_hevc_pps->num_tile_rows_minus1 >=
> + ARRAY_SIZE(p_hevc_pps->row_height_minus1))
> + return -EINVAL;
> }
>
> if (p_hevc_pps->flags &
More information about the Linux-rockchip
mailing list