From: Hans Verkuil Date: Wed, 29 Dec 2010 17:27:05 +0000 (-0300) Subject: [media] v4l2-ctrls: only check def for menu, integer and boolean controls X-Git-Tag: v2.6.38-rc1~470^2~31 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=02ac04805e6a753610d7dd1716181ccbd8e366af;p=~shefty%2Frdma-dev.git [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 Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 6c0fadc2bea..8f81efcfcf5 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/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;