Messages in this thread Patch in this message | | | From | Ezequiel Garcia <> | Subject | [PATCH v3 3/4] media: v4l2-ctrl: Validate VP8 stateless decoder controls | Date | Fri, 5 Jul 2019 11:50:49 -0300 |
| |
Only one field needs to be validated: 'num_dct_parts'. This field is used to iterate over the user-provided array 'dct_part_sizes'.
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> --- Changes from v2: * New patch --- drivers/media/v4l2-core/v4l2-ctrls.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index b2c9f5816c4a..b51b89b841c1 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -1637,6 +1637,7 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, union v4l2_ctrl_ptr ptr) { struct v4l2_ctrl_mpeg2_slice_params *p_mpeg2_slice_params; + struct v4l2_ctrl_vp8_frame_header *p_vp8_frame_header; void *p = ptr.p + idx * ctrl->elem_size; switch ((u32)ctrl->type) { @@ -1696,6 +1697,17 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, break; case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: + p_vp8_frame_header = p; + + switch (p_vp8_frame_header->num_dct_parts) { + case 1: + case 2: + case 4: + case 8: + break; + default: + return -EINVAL; + } break; default: return -EINVAL; -- 2.20.1
| |