[media] v4l2-ctrls: only check def for menu, integer and boolean controls
The 'def' field is only valid for menus, integers and booleans. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
513521eaee
commit
02ac04805e
|
@ -962,13 +962,20 @@ static struct v4l2_ctrl *v4l2_ctrl_new(struct v4l2_ctrl_handler *hdl,
|
|||
|
||||
/* Sanity checks */
|
||||
if (id == 0 || name == NULL || id >= V4L2_CID_PRIVATE_BASE ||
|
||||
def < min || def > max || max < min ||
|
||||
max < min ||
|
||||
(type == V4L2_CTRL_TYPE_INTEGER && step == 0) ||
|
||||
(type == V4L2_CTRL_TYPE_MENU && qmenu == NULL) ||
|
||||
(type == V4L2_CTRL_TYPE_STRING && max == 0)) {
|
||||
handler_set_err(hdl, -ERANGE);
|
||||
return NULL;
|
||||
}
|
||||
if ((type == V4L2_CTRL_TYPE_INTEGER ||
|
||||
type == V4L2_CTRL_TYPE_MENU ||
|
||||
type == V4L2_CTRL_TYPE_BOOLEAN) &&
|
||||
(def < min || def > max)) {
|
||||
handler_set_err(hdl, -ERANGE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (type == V4L2_CTRL_TYPE_BUTTON)
|
||||
flags |= V4L2_CTRL_FLAG_WRITE_ONLY;
|
||||
|
|
Loading…
Reference in New Issue