From 30cef43158a49d45df6e51f48b194403d7b3a287 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 29 Dec 2010 14:27:05 -0300 Subject: [PATCH] --- yaml --- r: 226395 b: refs/heads/master c: 02ac04805e6a753610d7dd1716181ccbd8e366af h: refs/heads/master i: 226393: 617db63cb99197c3d3117e5d26107b651fb047ed 226391: 2c0adc75bce0d4b58d8c4baf61d1fc760212836f v: v3 --- [refs] | 2 +- trunk/drivers/media/video/v4l2-ctrls.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 5abae892c0f8..517065359ea5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 513521eaee4375a1a0da0b73c7131a165a9fe4d9 +refs/heads/master: 02ac04805e6a753610d7dd1716181ccbd8e366af diff --git a/trunk/drivers/media/video/v4l2-ctrls.c b/trunk/drivers/media/video/v4l2-ctrls.c index 6c0fadc2beab..8f81efcfcf56 100644 --- a/trunk/drivers/media/video/v4l2-ctrls.c +++ b/trunk/drivers/media/video/v4l2-ctrls.c @@ -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;