v4l2-ioctl: allow all controls if ctrl_class == 0
PATCH 1/1 v4l2-ioctl: allow all controls if ctrl_class == 0
The check_ext_ctrls() function in v4l2-ioctl.c checks if all controls in the control array are from the same control class as c->ctrl_class. However, that check should only be done if c->ctrl_class != 0. A 0 value means that this restriction does not apply.
So return 1 (OK) if c->ctrl_class == 0.
Found by running v4l2-compliance on the uvc driver.
drivers/media/v4l2-core/v4l2-ioctl.c +2 -0
@@ -901,6 +901,8 @@ static int check_ext_ctrls(struct v4l2_ext_controls *c, int allow_priv)*/ if (!allow_priv && c->ctrl_class ==V4L2_CID_PRIVATE_BASE )return 0 ; +if (c->ctrl_class ==0 ) +return 1 ;/* Check that all controls are from the same control class. */ for (i =0 ; i < c->count; i++) {if (V4L2_CTRL_ID2CLASS (c->controls[i].id) != c->ctrl_class) {
Quoted 10 lines · Hans Verkuil
The
check_ext_ctrls()function inv4l2-ioctl.cchecks if all controls in the control array are from the same control class asc->ctrl_class. However, that check should only be done ifc->ctrl_class!= 0. A 0 value means that this restriction does not apply.So return 1 (OK) if
c->ctrl_class== 0.Found by running v4l2-compliance on the uvc driver.
Signed-off-by Hans Verkuil <[email protected]>
Signature · 2 lines
Sakari Ailus e-mail: [email protected] XMPP: [email protected]