summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2012-01-05 02:27:57 -0300
committerGreg Kroah-Hartman <gregkh@suse.de>2012-01-25 13:53:21 -0800
commit537400450bd43daf3f99efe35efd0ccaf16f38b1 (patch)
tree318eb8b1dabb23a4080f54cfbfc5531b8e0dbf16 /include
parentadafb366fb48fba6384818fa117ac89ce4ea75a8 (diff)
V4L/DVB: v4l2-ioctl: integer overflow in video_usercopy()
commit 6c06108be53ca5e94d8b0e93883d534dd9079646 upstream. If ctrls->count is too high the multiplication could overflow and array_size would be lower than expected. Mauro and Hans Verkuil suggested that we cap it at 1024. That comes from the maximum number of controls with lots of room for expantion. $ grep V4L2_CID include/linux/videodev2.h | wc -l 211 Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/videodev2.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index b59e78c57161..9e2088cb43c2 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -858,6 +858,7 @@ struct v4l2_querymenu {
#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
/* User-class control IDs defined by V4L2 */
+#define V4L2_CID_MAX_CTRLS 1024
#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
#define V4L2_CID_USER_BASE V4L2_CID_BASE
/* IDs reserved for driver specific controls */